728x90
반응형
setdefault()
dict타입의 키 존재 여부를 모른 채 접근할 수 있다A.setdefault(key, default)
collections.defaultdict
을 활용할 수 도 있다, 초기화시 default값을 넣어준다A = defaultdict(list)
@print_method
def usual_dict(dict_data):
""" dict[key]. """
newdata = {}
for k, v in dict_data:
if k in newdata:
newdata[k].append(v)
else:
newdata[k] = [v]
return newdata
@print_method
def setdefault_dict(dict_data):
""" setdefault() method. """
newdata = {}
for k, v in dict_data:
newdata.setdefault(k, []).append(v)
return newdata
@print_method
def defaultdict_dict(dict_data):
""" defaultdict() init. """
from collections import defaultdict
newdata = defaultdict(list)
for k, v in dict_data:
newdata[k].append(v)
return newdata
def test_setdef():
dict_data = [(f'k{i%2}',f'v{i}') for i in range(6)]
print(usual_dict(dict_data))
print(setdefault_dict(dict_data))
print(defaultdict_dict(dict_data))
test_setdef()
usual_dict: 0.0000
{'k0': ['v0', 'v2', 'v4'], 'k1': ['v1', 'v3', 'v5']}
setdefault_dict: 0.0000
{'k0': ['v0', 'v2', 'v4'], 'k1': ['v1', 'v3', 'v5']}
defaultdict_dict: 0.0000
defaultdict(<class 'list'>, {'k0': ['v0', 'v2', 'v4'], 'k1': ['v1', 'v3', 'v5']})
defaultdict 은 아래에서도 다루었다
Array(list)의 원소 개수 카운팅
728x90
728x90
BIG
'Programming > Python' 카테고리의 다른 글
package - 패키지 (0) | 2020.09.21 |
---|---|
module - 모듈 (0) | 2020.09.18 |
Reverse list - 리스트 역순으로 (0) | 2020.09.16 |
list method 성능 측정 (0) | 2020.09.15 |
Index(), bisect() - list 원소의 index값 찾기 (0) | 2020.09.14 |
댓글