
9/6 4, 5, 6, 7세션
'key' : 'value' 형태를 가진다.TIP! 딕셔너리 요소 순서
3.6 까지는 정렬되지 않은 자료구조였음. 3.7부터는 선언한 순서대로 유지됨
하지만 인덱싱, 슬라이싱은 불가능
> word = {'love' : '사랑', 'happy' : '행복', 'dream': '꿈'}
> member2 = {'이름': '홍길동',
'취미': ['독서', '여행', '걷기']}
변수명[key]
> member['이름']
홍길동
dict() 함수를 사용해 key:value 형태를 가질 수 있는 자료형을 딕셔너리로 변환# 리스트 만들기
> members = [['홍길동', 100], ['일지매', 90], ['한여인', 90], ['강우동', 95]]
# 딕셔너리로 변환
> member_dic = dict(members)
# 확인
> member_dic
{'홍길동': 100, '일지매': 90, '한여인': 90, '강우동': 95}
쌍으로 된 리스트 형태가 아니라면?
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[15], line 5 2 members = [['홍길동', 100, 200], ['일지매', 90], ['한여인', 90], ['강우동', 95]] 4 # 딕셔너리로 변환 ----> 5 member_dic = dict(members) 7 # 확인 8 member_dic ValueError: dictionary update sequence element #0 has length 3; 2 is required
# 튜플 만들기
> members = (('홍길동', 100), ('일지매', 90), ('한여인', 90), ('강우동', 95))
# 딕셔너리로 변환
> member_dic = dict(members)
# 확인
> member_dic
{'홍길동': 100, '일지매': 90, '한여인': 90, '강우동': 95}
in 연산자in 연산자를 사용해 해당 key 가 있는지 확인 가능print('이름' in member) # True
print('홍길동' in member) # False
print('여행' in member['취미']) # True
변수명[key] = 바꿀 value# 딕셔너리 요소 값 변경(나이 = 30)
> member['나이'] = 30
{'이름': '홍길동', '나이': 30}
# 딕셔너리에 요소 추가(취미 = 독서, 여행)
> member['취미'] = ['독서', '여행']
{'이름': '홍길동', '나이': 30, '취미': ['독서', '여행']}
del 변수명[key] : key로 요소 삭제pop(key) : key로 요소 삭제 후 삭제한 요소의 value 반환popitem() : 키 지정 없이 마지막 요소부터 삭제 / 삭제된 요소의 key 와 value 를 튜플 형태로 반환 (순서가 없다고는 하지만, Hash 값으로 관리가 되어 마지막 요소를 삭제할 수 있음)변수명 = {} : 모든 요소 삭제변수명.keys()
> member.keys()
dict_keys(['이름', '취미']) # type 은 dict_keys
> list(member.keys())
['이름', '취미']
변수명.values()
변수명.items()
변수명.get(key)
변수명.get(key, 없을 때 대신 출력할 할 값)
변수명[key] 는 해당 key 가 없으면 에러남