개발

맨날 까먹는 파이썬 문법

senyalog 2024. 12. 14. 10:57

Dictionary

- 딕셔너리 타입은 immutable한 key와 mutable한 value로 맵핑 되어 있는 순서가 없는 집합

//일반적인 형태
{'a': 1, 'b': 2}

- key로는 immutable한 값만 사용 할 수 있음 (예를 들어, int/tuple/float/bool 사용 가능 but set/list/dict 사용 불가)

- key가 중복되면 마지막 값으로 덮어씌워짐

- mutable한 객체이기에 키로 접근하여 값 변경가능

>>> dic["key"] = "any value"
>>> dic
{ 'key' : "any value" }

- 리스트 속의 리스트/튜플 또는 튜플과 리스트/튜플을 dict로 변형 가능

>>> this_is_list = [ ["testKey", 1], ["testKey2",2] ]
>>> dict(this_is_list)
{ 'testKey' : 1, 'testKey2':2 }


>>> this_is_tuple = [ ("tupKey", 1), ("tupKey2",2) ]
>>> dict(this_is_list)
{ 'tupKey' : 1, 'tupKey2':2 }

 

- 여러 키의 값을 수정할 경우 'update'메소드를 사용. 키가 없으면 추가됨.

 

매번 헷갈리는 부분!

 

- dictionary를 for 문 돌리면 key값이 할당되고 순서는 임의적이다.

- value 값으로 for을 돌리려면 `values()`를 사용하면됨. 

- key와 value 한번에 for문 도려면 `items()` 사용하면 됨

 

>>> a = {'alice': [1, 2, 3], 'bob': 20, 'tony': 15, 'suzy': 30}
>>> for key in a:
...     print(key)
... 
alice
bob
tony
suzy


>>> for val in a.values():
...     print(val)
... 
[1, 2, 3]
20
15
30    

>>> for key, val in a.items():
...     print("key = {key}, value={value}".format(key=key,value=val))
... 
key = alice, value=[1, 2, 3]
key = bob, value=20
key = tony, value=15
key = suzy, value=30

 

 

- dictionary의 `in` method는 키값이 존재하는지 확인 할때 사용

- `del a["alice"]` 키 삭제