모든 값 가져오기, 하나씩 값 가져오기
✔️ (key, value)
N = {'a': 1, "b" : (2, 3), 4 : 'd', (5, 6) : 'e'}
print(N.items())
>> dict_items([('a', 1), ('b', (2, 3)), (4, 'd'), ((5, 6), 'e')])
✔️ keys
N = {'a': 1, "b" : (2, 3), 4 : 'd', (5, 6) : 'e'}
print(N.keys())
>> dict_keys(['a', 'b', 4, (5, 6)])
✔️ values
N = {'a': 1, "b" : (2, 3), 4 : 'd', (5, 6) : 'e'}
print(N.values())
>> dict_values([1, (2, 3), 'd', 'e'])
✔️ key로 value 찾기
N = { 'a': 1, "b" : (2, 3), 4 : 'd', (5, 6) : 'e'}
N['b'], N[4], N[(5, 6)]
>> (2, 3) d e
N = {"초코":150, "바나나":200, "딸기":80}
N["초코"]
>> 150
N = {"초코":150, "바나나":200, "딸기":80}
N["파인애플"]
>> KeyError: '파인애플'
✔️ setdefault
1. (key)
N = {"초코":150, "바나나":200, "딸기":80}
print(N.setdefault("초코")) # key가 존재하면 value 값을 가져오고,
>> 150
print(N.setdefault("파인애플")) # key가 없으면 None을 가져옴
>> None
print(N) # "파인애플" key 값이 들어감
>> {'초코': 150, '바나나': 200, '딸기': 80, '파인애플': None}
2. (key, 첫 설정값)
N = {"초코":150, "바나나":200, "딸기":80}
print(N.setdefault("초코", 0)) # key가 존재하면 value 값을 가져오고,
>> 150
print(N.setdefault("파인애플", 0)) # key가 없으면 설정한 초기값을 가져옴
>> 0
print(N) # "파인애플" key 값이 들어감
>> {'초코': 150, '바나나': 200, '딸기': 80, '파인애플': 0}
✔️ get
1. (key)
N = {"초코":150, "바나나":200, "딸기":80}
print(N.get("초코")) # key가 존재하면 value 값을 가져오고,
>> 150
print(N.get("파인애플")) # key가 없으면 None을 가져옴
>> None
2. (key, 반환값)
N = {"초코":150, "바나나":200, "딸기":80}
print(N.get("초코", 0)) # key가 존재하면 value 값을 가져오고,
>> 150
print(N.get("파인애플", 0)) # key가 없으면 설정한 초기값을 가져옴
>> 0
print(N) # "파인애플" key 값이 들어가지 않음
>> {'초코': 150, '바나나': 200, '딸기': 80}
✔️ defaultdict
1. 기본 : int, str, list, set, ...
from collections import defaultdict
N = defaultdict(int)
print(N["초코"])
>> 0
print(N)
>> defaultdict(<class 'int'>, {'초코': 0})
N = defaultdict(list)
print(N["초코"])
>> []
print(N)
>> defaultdict(<class 'list'>, {'초코': []})
2. lambda 사용
from collections import defaultdict
N = defaultdict([1, 2, 3])
print(N["초코"])
>> TypeError: first argument must be callable or None
from collections import defaultdict
N = defaultdict(lambda: [1, 2, 3])
print(N["초코"])
>> [1, 2, 3]
print(N)
>> defaultdict(<function <lambda> at 0x00000253B783B790>, {'초코': [1, 2, 3]})