키 값을 업데이트하기 전에 사전에 키가 있는지 테스트하고 싶었습니다. 다음 코드를 작성했습니다.
if 'key1' in dict.keys():
print "blah"
else:
print "boo"
이것이 이 작업을 수행하는 가장 좋은 방법이 아니라고 생각합니다. 사전에서 키를 테스트하는 더 좋은 방법이 있습니까?
키 값을 업데이트하기 전에 사전에 키가 있는지 테스트하고 싶었습니다. 다음 코드를 작성했습니다.
if 'key1' in dict.keys():
print "blah"
else:
print "boo"
이것이 이 작업을 수행하는 가장 좋은 방법이 아니라고 생각합니다. 사전에서 키를 테스트하는 더 좋은 방법이 있습니까?
d = {"key1": 10, "key2": 23}
if "key1" in d:
print("this will execute")
if "nonexistent key" in d:
print("this will not")
dict.get()
키가 없을 때 기본값을 제공하는 데 사용 합니다.
d = {}
for i in range(10):
d[i] = d.get(i, 0) + 1
모든 키에 대한 기본값을 제공하려면 dict.setdefault()
각 할당에서 다음 을 사용하십시오.
d = {}
for i in range(10):
d[i] = d.setdefault(i, 0) + 1
또는 모듈 defaultdict
에서 사용:collections
from collections import defaultdict
d = defaultdict(int)
for i in range(10):
d[i] += 1
다음 key in my_dict
대신 직접 사용 key in my_dict.keys()
:
if 'key1' in my_dict:
print("blah")
else:
print("boo")
키 목록에서 O(n) 선형 검색을 수행하는 것과 달리 사전의 O(1) 해싱을 사용하므로 훨씬 빠릅니다 .
in 키워드 를 사용하여 사전에 키가 있는지 테스트할 수 있습니다 .
d = {'a': 1, 'b': 2}
'a' in d # <== evaluates to True
'c' in d # <== evaluates to False
키를 변경하기 전에 사전에 키가 있는지 확인하는 일반적인 용도는 값을 기본값으로 초기화하는 것입니다(예: 값이 목록이고 추가할 수 있는 빈 목록이 있는지 확인하려는 경우) 키의 첫 번째 값을 삽입할 때). 그러한 경우 collections.defaultdict()
에 관심 있는 유형을 찾을 수 있습니다.
has_key()
이전 코드에서는 사전에 키의 존재를 확인하기 위해 더 이상 사용되지 않는 방법인 의 일부 사용을 찾을 수도 있습니다 ( key_name in dict_name
대신 , 사용).