주어진 키가 사전에 이미 존재하는지 확인
이를 수행하는 방법을 이해하려면 먼저 사전에서 호출 할 수있는 메소드를 검사하십시오. 방법은 다음과 같습니다.
d={'clear':0, 'copy':1, 'fromkeys':2, 'get':3, 'items':4, 'keys':5, 'pop':6, 'popitem':7, 'setdefault':8, 'update':9, 'values':10}
Python Dictionary clear() Removes all Items
Python Dictionary copy() Returns Shallow Copy of a Dictionary
Python Dictionary fromkeys() Creates dictionary from given sequence
Python Dictionary get() Returns Value of The Key
Python Dictionary items() Returns view of dictionary (key, value) pair
Python Dictionary keys() Returns View Object of All Keys
Python Dictionary pop() Removes and returns element having given key
Python Dictionary popitem() Returns & Removes Element From Dictionary
Python Dictionary setdefault() Inserts Key With a Value if Key is not Present
Python Dictionary update() Updates the Dictionary
Python Dictionary values() Returns view of all values in dictionary
키가 이미 있는지 확인하는 잔인한 방법은 다음과 get()
같습니다.
d.get("key")
다른 두 가지 흥미로운 방법 items()
과 keys()
소리는 너무 많은 일처럼 들립니다. 따라서 get()
우리에게 적합한 방법 인지 살펴 보겠습니다 . 우리는 우리의 받아쓰기를 가지고 있습니다 d
:
d= {'clear':0, 'copy':1, 'fromkeys':2, 'get':3, 'items':4, 'keys':5, 'pop':6, 'popitem':7, 'setdefault':8, 'update':9, 'values':10}
인쇄하지 않은 키는 다음과 같이 표시됩니다 None
.
print(d.get('key')) #None
print(d.get('clear')) #0
print(d.get('copy')) #1
우리는 할 수있다 키가 없거나하지 않는 경우 정보를 얻기 위해 그것을 사용합니다. 그러나 단일로 dict를 만들면 이것을 고려하십시오 key:None
.
d= {'key':None}
print(d.get('key')) #None
print(d.get('key2')) #None
get()
일부 값이있을 수있는 경우이 방법을 신뢰할 수 없습니다 None
. 이 이야기는 더 행복한 결말을 가져야합니다. in
비교기를 사용하는 경우 :
print('key' in d) #True
print('key2' in d) #False
올바른 결과를 얻습니다. 파이썬 바이트 코드를 살펴볼 수 있습니다 :
import dis
dis.dis("'key' in d")
# 1 0 LOAD_CONST 0 ('key')
# 2 LOAD_NAME 0 (d)
# 4 COMPARE_OP 6 (in)
# 6 RETURN_VALUE
dis.dis("d.get('key2')")
# 1 0 LOAD_NAME 0 (d)
# 2 LOAD_METHOD 1 (get)
# 4 LOAD_CONST 0 ('key2')
# 6 CALL_METHOD 1
# 8 RETURN_VALUE
이는 in
비교 연산자가보다 안정적 일뿐만 아니라보다 빠르다 는 것을 보여줍니다 get()
.
dict.keys()
문서에 따르면 호출 하면 키 목록이 생성 되지만 심각한 구현 에서이 패턴이 번역에 최적화되지 않은 경우 놀랍습니다. 에 .if 'key1' in dict: