◾딕셔너리
딕셔너리(Dictionary)
: 키(key)와 값(value)를 이용해 자료 관리
- key : 's1', 's2', 's3, 's4
- value : '홍길동', '박찬호', '이용규', '박승철'
- 키는 중복 불가, 값은 중복 가능
- 선언 :
{키 : 값}
- key, value는 숫자, 문자열, 논리형 뿐 아니라 컨테이너 자료형도 가능
- key : immutable 값은 가능하지만, mutable 값은 올 수 없다.
students = {'s1' : '홍길동', 's2' : '박찬호', 's3' : '이용규', 's4' : '박승철',}
print(students)
1. 조회
students = {'s1' : '홍길동', 's2' : '박찬호', 's3' : '이용규', 's4' : '박승철'}
print(students)
print(students['s1'])
print(students['s4'])
get(key)
: key에 해당하는 value 조회, key가 존재하지 않으면 None 반환
students = {'s1' : '홍길동', 's2' : '박찬호', 's3' : '이용규', 's4' : '박승철'}
print(students)
print(students.get('s1'))
print(students.get('s4'))
print(students.get('s5'))
2. 추가
딕셔너리[키]=값
: 해당하는 키가 없다면 값을 쌍으로 하는 형태로 추가하고, 키가 있다면 값을 변경한다.
students = {'s1' : '홍길동', 's2' : '박찬호', 's3' : '이용규', 's4' : '박승철'}
print(students)
students['s5'] = '강호동'
print(students)
3. 수정
딕셔너리[키] = 값
: 이미 추가된 키를 사용하여 해당 키의 값을 변경할 수 있다.
students = {'s1' : '홍길동', 's2' : '박찬호', 's3' : '이용규', 's4' : '박승철'}
print(students)
students['s4'] = '강호동'
print(students)
◾조회 함수
memInfo = {'이름':"홍길동", "메일":'gildong@gmila.com', '학년':3, '취미':['농구', '게임']}
ks = memInfo.keys()
print('ks : {}'.format(ks))
print('type : {}'.format(type(ks)))
values()
: 딕셔너리의 value 반환
memInfo = {'이름':"홍길동", "메일":'gildong@gmila.com', '학년':3, '취미':['농구', '게임']}
vs = memInfo.values()
print('vs : {}'.format(vs))
print('type : {}'.format(type(vs)))
items()
: 딕셔너리의 키와 값 쌍을 튜플 형태로 반환
memInfo = {'이름':"홍길동", "메일":'gildong@gmila.com', '학년':3, '취미':['농구', '게임']}
items = memInfo.items()
print('items : {}'.format(items))
print('type : {}'.format(type(items)))
dict_keys
, dict_values
, dict_items
타입으로 Iterable 객체이다.
- 반복 가능 객체이기 때문에 for..in..에 사용 가능
- keys(), values(), items()는 list, tuple로 변환 가능
ks = list(ks)
print(ks)
print(type(ks))
vs = list(vs)
print(vs)
print(type(vs))
items = list(items)
print(items)
print(type(items))
for key in memInfo.keys():
print('key : {}'.format(key))
for idx, key in enumerate(memInfo.keys()):
print('idx, key : {}, {}'.format(idx, key))
◾딕셔너리 삭제
del 키워드
: del 딕셔너리[키]로 해당 아이템 삭제
memInfo = {'이름':"홍길동", "메일":'gildong@gmila.com', '학년':3, '취미':['농구', '게임']}
print(memInfo)
del memInfo['메일']
print(memInfo)
del memInfo['취미']
print(memInfo)
memInfo = {'이름':"홍길동", "메일":'gildong@gmila.com', '학년':3, '취미':['농구', '게임']}
print(memInfo)
returnValue = memInfo.pop('메일')
print(memInfo)
print(returnValue)
print(type(returnValue))
returnValue = memInfo.pop('학년')
print(memInfo)
print(returnValue)
print(type(returnValue))
◾딕셔너리 기능
- 키의 존재 유/무 판단
in
: 키가 존재하는지
not in
: 키가 존재하지 않는지
memInfo = {
'이름' : '홍길동',
'메일' : 'gildong@gmail.com',
'학년' : 3,
'취미' : ['농구', '게임']
}
print('이름' in memInfo)
print('메일' in memInfo)
print('name' in memInfo)
print('mail' in memInfo)
print('이름' not in memInfo)
print('메일' not in memInfo)
print('name' not in memInfo)
print('mail' not in memInfo)
memInfo = {
'이름' : '홍길동',
'메일' : 'gildong@gmail.com',
'학년' : 3,
'취미' : ['농구', '게임']
}
print('len(memInfo) : {}'.format(len(memInfo)))
clear()
: 딕셔너리의 모든 아이템 삭제, 딕셔너리 객체는 삭제되지 않는다.
memInfo = {
'이름' : '홍길동',
'메일' : 'gildong@gmail.com',
'학년' : 3,
'취미' : ['농구', '게임']
}
print(memInfo)
memInfo.clear()
print(memInfo)