指定されたキーが辞書にすでに存在するかどうかを確認します
その方法を理解するには、まず、ディクショナリで呼び出すことができるメソッドを調べます。メソッドは次のとおりです。
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
正しい結果が得られます。Pythonバイトコードを調べます。
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()
ドキュメントdocs.python.org/2/library/stdtypes.html#dict.keysによると、呼び出しによりキーのリストが作成されますが、このパターンが翻訳のために真剣な実装で最適化されていなかった場合、私は驚くでしょうにif 'key1' in dict:
。