딕셔너리
: 키-값(key-value) 쌍을 저장하는 변경가능한!!(mutable) 컬렉션,
'{키: 값}'
이러한 형식으로 이루어져있다!!!
여기서,
키는 중복이 되지 않고,
값은 중복이 가능하다!!
는 점을
유의해둘 필요가 있다.
그리고,
키 값은 어떠한 자료형이 들어가도 상관이 없는데~
그 이유는
키 부분에 set이 들어가있기 때문!
또한,
dict1 = {1: 'flower'} # 추가
print(dict1)
dict1[100] = 'fruit' # 추가
print(dict1)
dict1[50] = 'food' # 추가
print(dict1)
dict1[100] = 'fish' # 수정
print(dict1)
del dict[100] # 삭제
print(dict1)
{1: 'flower'}
{1: 'flower', 100: 'fruit'}
{1: 'flower', 100: 'fruit', 50: 'food'}
{1: 'flower', 100: 'fish', 50: 'food'}
{1: 'flower', 50: 'food'}
이렇게 추가, 수정, 삭제까지 가능하다는 점을 알 수 있다.
dict2 = {'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
print(dict2)
dict2['age'] = 20 # 수정
print(dict2)
dict2['gender'] = 'female' # 추가
print(dict2)
dict2['점수'] = [70, 90, 100] # 추가
print(dict2)
# dict2[[1, 2, 3]] = [['하나', '둘', '셋']] #TypeError: unhashable type: 'list' 불변의 값이라 list 못 씀
dict2[(1, 2, 3)] = ['하나', '둘', '셋'] #튜플은 가능
print(dict2)
dict2['과목'] = {'국어': '상', '수학':'하', '영어':'중'} # 딕셔너리 추가 가능
print(dict2)
{'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
{'name': '김뽀삐', 'age': 20, 'streotype': 'O'}
{'name': '김뽀삐', 'age': 20, 'streotype': 'O', 'gender': 'female'}
{'name': '김뽀삐', 'age': 20, 'streotype': 'O', 'gender': 'female', '점수': [70, 90, 100]}
{'name': '김뽀삐', 'age': 20, 'streotype': 'O', 'gender': 'female', '점수': [70, 90, 100], (1, 2, 3) : ['하나', '둘', '셋']}
{'name': '김뽀삐', 'age': 20, 'streotype': 'O', 'gender': 'female', '점수': [70, 90, 100], (1, 2, 3) : ['하나', '둘', '셋'], '과목' : {'국어': '상', '수학':'하', '영어':'중'}}
리스트는 불가,
튜플, 딕셔너리 추가는 가능하다는 점을 알 수 있다.
딕셔너리에 사용가능한 함수를 알아보면,
dict3 = {'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
print(len(dict3))
3
- keys() : 딕셔너리의 모든 키를 반환
print(dict3.keys())
dict_keys(['name', 'age', 'streotype'])
- values() : 딕셔너리의 모든 값을 반환
print(dict3.values())
dict_values(['김뽀삐', 30, 'O'])
- items(): 딕셔너리의 모든 키-값을 쌍(튜플)으로 반환
print(dict3.items())
dict_items([('name','김뽀삐'), ('age', 30), ('streotype', 'O')])
- get() : 특정 키에 대한 값을 반환, 만약 키가 딕셔너리에 없으면 None을 반환
(None을 대신해서 특정 값을 설정할 수 있다)
dict3 = {'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
print(dict3['age']))
# print(dict3['score']) # KeyError: 'score'
print(dict3.get('age'))
print(dict3.get('score')) # None
print(dict3.get('score', '점수를 알 수 없음'))
print(dict3.get('age', '나이를 알 수 없음'))
30
30
None
점수를 알 수 없음
30
-pop() : 특정 키에 대한 값을 제거하고 그 값을 반환, 키가 없다면 에러
dict3 = {'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
print(dict3)
temp = dict3.pop('streaotype') # 키는 저장하지 않음, value 값만 추출
print(dict3)
print(temp)
print(type(temp))
dict3 = {'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
dict3 = {'name': '김뽀삐', 'age': 30}
O
<class 'str'>
- in() : 딕셔너리에 특정 키가 있는지 확인
dict3 = {'name': '김뽀삐', 'age': 30, 'streotype': 'O'}
print('streotype' in dict3)
print('score' in dict3)
True
False
'코딩 > 파이썬' 카테고리의 다른 글
제어문 - 조건문 (0) | 2024.03.14 |
---|---|
파이썬 연산자 (0) | 2024.03.14 |
컬렉션 타입 - 세트 (0) | 2024.03.14 |
파이썬 컬렉션 타입, 튜플 (0) | 2024.03.13 |
파이썬 컬렉션 타입, 리스트 (0) | 2024.03.13 |