1 Dictionary
a = {key1:value1, key2:value2, ...}
b = dict(key='value', ...})
c = dict([[key, value], [key, value]])
d = {}
- key는 변하지 않는 고유한 값
- 리스트, 딕셔너리, 세트 등은 변하기 때문에 사용 불가/문자형, 숫자, 불, 튜플 섞어서 사용 가능
- 중복되는 값은 당연히 안된다.
- 파이썬에서 1==True, 0==False 취급
- 딕셔너리는 sequence가 아니고, 그러므로 인덱싱 슬라이싱은 불가능하다. 대신 Key:Value 1:1 매칭으로 key를 통해 Value 접근.
변수명[key]: value (없는 key 입력 시 에러)
변수명[key] = new value: (없는 key 입력 시 새로운 key:value 추가)
- 특정 key, value 삭제:
del 변수명[key]
- 특정 key 확인:
print(<키> in <변수명>) print(<키> in <변수명>).keys()
- 특정 value 확인:
print(<값> in <변수명>.values())
2 관련 함수, 메소드
딕셔너리.keys() 딕셔너리.values(): key와 value만 return. 데이터타입이 dict_keys, dict_values라는 객체기 때문에, 리스트 처럼 쓰고 싶으면 다시 리스트로 처리해야 한다.
딕셔너리.items(): (key, value) 튜플 쌍으로 묶은 dict_items 객체로 리턴한다.
discount_rates = {key1:val1, ...}
for i, k in discount_rates.items():
딕셔너리.clear(): key, value 모두 지우기.
딕셔너리.get(키): 키에 대응되는 value 리턴.
dict.fromkeys(키iterable, 값iterable): iterable을 dict로 만드는 것. 여기서 값iterable은 옵션으로 안넣으면 None 할당 => 중복값 없애는데 사용 가능
3 활용 방법
- 1 dict함수와 zip 함수 이용
dict(zip([key리스트], [value리스트]))
- 2 value가 숫자일 때
변수명[키] += 1 과 같은 연산 가능
- 3 중복값 없애기
''.join(dict.fromkeys(my_string))