1. ホーム
  2. python

[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする

2022-03-14 04:05:02

質問

ある辞書にあるキーが存在するかどうかを、そのキーの値を更新する前にテストしたいと思いました。 次のようなコードを書きました。

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

これは、このタスクを達成するための最良の方法ではないと思います。辞書のキーをテストする、もっと良い方法はないでしょうか?

どのように解決するのですか?

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 = dict()

for i in range(100):
    key = i % 10
    d[key] = d.get(key, 0) + 1

で、どのキーに対しても常にデフォルト値を確保したい場合は dict.setdefault() を繰り返すか defaultdict から collections モジュールで、このようにします。

from collections import defaultdict

d = defaultdict(int)

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

が、一般的には in キーワードが最適です。