指定されたキーが辞書にすでに存在するかどうかを確認する 質問する

指定されたキーが辞書にすでに存在するかどうかを確認する 質問する

キーの値を更新する前に、辞書にキーが存在するかどうかをテストしたかったので、次のコードを書きました。

if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"

これはこのタスクを実行するための最善の方法ではないと思います。辞書内のキーをテストするより良い方法はありますか?

ベストアンサー1

inキーの存在をテストするdict:

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(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    

...または、defaultdictからcollectionsモジュール:

from collections import defaultdict

d = defaultdict(int)

for i in range(100):
    d[i % 10] += 1

おすすめ記事