반응형
질문
딕셔너리에서 키의 값 업데이트 전에 키가 있는지 테스트하고 싶었습니다. 다음 코드를 작성했습니다:
if 'key1' in dict.keys():
print "blah"
else:
print "boo"
이것은 이 작업을 수행하기에는 최선의 방법이 아니라고 생각합니다. 딕셔너리에서 키를 테스트하는 더 나은 방법이 있습니까?
답변
d = {"key1": 10, "key2": 23}
if "key1" in d:
print("이것은 실행됩니다.")
if "존재하지 않는 키" in d:
print("이것은 실행되지 않습니다.")
키가 존재하지 않을 때 기본 값을 제공하려면 dict.get()
을 사용합니다:
d = {}
for i in range(100):
key = i % 10
d[key] = d.get(key, 0) + 1
모든 키에 대해 기본 값을 제공하려면 각 할당에 dict.setdefault()
을 사용하거나:
d = {}
for i in range(100):
d[i % 10] = d.setdefault(i % 10, 0) + 1
...또는 collections
모듈의 defaultdict
을 사용하세요:
from collections import defaultdict
d = defaultdict(int)
for i in range(100):
d[i % 10] += 1
반응형
댓글