-
5. (1) 파이썬 자료형 딕셔너리파이썬(Python) 강의 2019. 2. 8. 15:28
들어가기전에
이 포스트는 여러분이 파이썬을 설치했고 각자 원하는 IDE를 이용해 파이썬을 개발한다고 가정한다. 대화형(Interactive) 터미널을 사용해도 상관 없다. 혹시 파이썬을 설치하지 않았다면 1.파이썬 설치 및 개발환경 설정 이 포스트에서 파이썬과 파이썬 개발환경을 먼저 셋업하길 바란다. 앞서 말했듯이 반드시 실습 해 보길 바라고 30분 이상 소요하지 말라.
숫자(Numbers) : 12, 24.3, 3+2j, .. (2.파이썬 자료형 숫자)
문자(Strings) : "hello, "world" (3. (1) 파이썬 자료형 문자열, 3.(2) 파이썬 자료형 문자열)
리스트(Lists) : [1, 3, [3, 'hey'], 4] (4. (1) 파이썬 자료형 리스트, 4. (2) 파이썬 자료형 리스트)
딕셔너리(Dictionaries) : { 'name': 'fsoftwareengineer', 'age' : 17}
튜플(Tuples) : (1, 'a', 4, 'c')
파일(Files) : f = open('filename', 'r')
셋(Sets) (집합) : { 1, 4, 5 }
다른 타입들 : Boolean (True/Faluse), types, None, etc
프로그래밍 유닛 타입(Programming unit types) : 함수(Functions), 모듈(Modules), 클래스(Classes)
구현 레벨 타입(Implementational-level types) : 예외(Exception) 등등..
이번 포스트도 이전 포스트들과 마찬가지로 두 포스트로 나누어 딕셔너리 표현법 및 기초 연산과 유용한 함수를 나눠 설명하겠다.예상 소요 시간 30분 이내목표
- 딕셔너리 초기화 (Dictionary Initialization)
- 중첩 딕셔너리 (Nested Dictionary)
- 삽입 (Insert)
- 수정 (Update)
- 삭제 (Delete)
딕셔너리 초기화 (Dictionary Initialization)
딕셔너리란 순서가 없는 컬렉션이다. 말이 참 어렵게 느껴지지만 이렇게 생각하면 된다. 딕셔너리에 무언가 저장하기 위해서는 'key'가 필요하다. 이 'key'는 딕셔너리에 저장된 값을 가져오기 위한 말 그대로 열쇠이다. 설명이 어렵게 느껴진다면 아래의 예를 보자.
빈 딕셔너리 (Empty Dictionary)
dic = {}
print(dic) {}빈 딕셔너리는 다음과 같이 중괄호로 선언한다.
딕셔너리 (Dictionary)
dic = {
'name' : 'fsoftwareengineer'
}
print(dic) {'name': 'fsoftwareengineer'}딕셔너리의 key value는 위와 같이 key : value로 나타 낼 수 있다. 자 그럼 'fsoftwareengineer'만 어떻게 가져올까?
dic = {
'name' : 'fsoftwareengineer'
}
print(dic['name']) fsoftwareengineer바로 dic[key]를 이용해 가져 올 수 있다. 생각해보면 간단하다. 리스트에서는 인덱스 0,1,2,3,...을 이용해 값을 가져 올 수 있었다. 딕셔너리에서는 인덱스 대신 고유값-'key'를 이용해 value를 가져 올 수 있다.
두개의 key-value를 가진 딕셔너리를 만들어보자.
dic = {
'name' : 'fsoftwareengineer', # 콤마로 구분하는 것을 잊지 말자.
'age' : 17
}
print(dic) {'name': 'fsoftwareengineer', 'age': 17}name-fsoftwareengineer 그리고 age-17인 딕셔너리가 생성 된 것을 확인 할 수 있다.
dic = {
'name' : 'fsoftwareengineer',
'age' : 17
}
print(dic['name'])
print(dic['age']) fsoftwareengineer 17각 key를 이용해 값을 가져올 수 있음을 확인 할 수 있다.
중첩 딕셔너리 (Nested Dictionary)
리스트에서 리스트 안에 또 리스트를 넣을 수 있었던 것을 기억하는가? 딕셔너리도 마찬가지이다. 딕셔너리 내부에 또 딕셔너리를 넣을 수 있다. 예를들어서 나는 펫이 잇고 펫의 정보인 이름과 펫의 나이를 'pet'이라는 키를 통에 접근하고 싶다. 그렇다면 기존에 문자열이나 숫자를 넣은 것 대신 딕셔너리를 넣어 이를 표현 할 수 있다.
dic = {
'name' : 'fsoftwareengineer',
'age' : 17,
'pet' : {
'name' : 'Ronny',
'age' : 3
}
}
print(dic) {'name': 'fsoftwareengineer', 'age': 17, 'pet': {'name': 'Ronny', 'age': 3}}펫은 어떻게 가져오면 되는가?
dic = {
'name' : 'fsoftwareengineer',
'age' : 17,
'pet' : {
'name' : 'Ronny',
'age' : 3
}
}
print(dic['pet'])그렇자면 펫 내부의 이름 'Ronny'는 어떻게 가져오는가? 중첩 리스트에서 list[0][2]를 이용해 0번째 저장되어있는 리스트를 불러와 그 리스트의 2번째 아이템을 접근 했던 게 기억나는가? 마찬가지이다. dic['pet']을 한 상태에서 이미 여러분은 { 'name':'Ronny', 'age':3 }을 가지고 있는 것이다. 이제 위에서 했던 것 처럼 같은 방법으로 'name'을 가져오면 된다.
dic = {
'name' : 'fsoftwareengineer',
'age' : 17,
'pet' : {
'name' : 'Ronny',
'age' : 3
}
}
print(dic['pet']['name']) Ronny삽입 (Insert)
그렇다면 초기화 이후에는 어떻게 key-value를 삽입해야 하는가? 그건 초기화보다 더 간단하다.
dic = {
'name' : 'fsoftwareengineer',
'age' : 17
}
print(dic)
# dic에 새로운 key - value 넣기
dic['phone'] = "02-834-2549"
print(dic)
print(dic['phone']) {'name': 'fsoftwareengineer', 'age': 17} {'name': 'fsoftwareengineer', 'age': 17, 'phone': '02-834-2549'} 02-834-2549이렇게 원하는 key를 이용해 dic[key] = value 값을 할당하면, 파이썬이 '어라? 이녀석은 원래 딕셔너리에 없는 녀석이니 새로 만들어줘야겠다.' 하고 새로 만들어준다. 따라서 새 값을 삽입하기 전인 맨 처음 print는 phone과 그 값을 출력하지 않지만 두번째는 출력하는것이다.
수정 (Update)
수정을 하는 법에는 여러가지가 있지만 가장 간단한 방법은 위의 삽입과 동일한 방법을 사용하는 것이다.
dic = {
'name' : 'fsoftwareengineer',
'age' : 17
}
print(dic['name'])
dic['name'] = "other name"
print(dic['name'])
print(dic) fsoftwareengineer other name {'name': 'other name', 'age': 17}기존의 fsoftwareengineer에서 other name으로 name키의 value가 바뀐 것을 확인 할 수 있다.
삭제 (Delete)
리스트에서 삭제를 어떻게 했었는지 기억나는가? 바로 del을 이용해 삭제했었다. 딕셔너리에서도 마찬가지로 del을 이용해 삭제 할 수 있다.
dic = {
'name' : 'fsoftwareengineer',
'age' : 17
}
print(dic)
del dic['name']
print(dic) {'name': 'fsoftwareengineer', 'age': 17} {'age': 17}두번째 print에서 'name:'fsoftwareengineer'가 삭제 된 것을 확인 할 수 있다.
끝
이번 포스트에서는 딕셔너리가 무엇이고 딕셔너리를 초기화하는 방법, 삽입, 수정, 삭제하는 방법에 대해 알아보았다. 다음 포스트에서는 딕셔너리가 제공하는 다양한 함수를 이용해 딕셔너리를 이용하는 방법을 설명하도록 하겠다.
연습문제
- 딕셔너리 내부에 값으로 리스트를 넣을 수 있는가? key가 'fruits'이고 값이 ['apple', 'banana', 'orange']인 딕셔너리를 작성 해 보아라.
- 딕셔너리의 key는 반드시 문자열이어야 하는가? key가 10이고 value이 '십'인 딕셔너리를 작성 해 보아라.
- 위의 딕셔너리에 key가 'ten' 이고 value가 10인 딕셔너리를 작성하고 출력 해 보아라.
'파이썬(Python) 강의' 카테고리의 다른 글
6. 파이썬 문법 반복문 (for/while) (3) 2019.02.10 5. (2) 파이썬 자료형 딕셔너리 (6) 2019.02.09 4. (2) 파이썬 자료형 리스트 (0) 2019.02.07 4. (1) 파이썬 자료형 리스트 (3) 2019.02.05 3. (2) 파이썬 자료형 문자열 (2) 2019.02.05 댓글