dict.keys()にキーがない場合は、キーと値のペアをdictに挿入します。 基本的に私はPythonがdict内のキーを更新していない場合は
if key not in d.keys():
d[key] = value
でそれを行うことができます。しかし、より良い方法はありますか?またはこの問題のpythonic解決策は何ですか?
dict.keys()にキーがない場合は、キーと値のペアをdictに挿入します。 基本的に私はPythonがdict内のキーを更新していない場合は
if key not in d.keys():
d[key] = value
でそれを行うことができます。しかし、より良い方法はありますか?またはこの問題のpythonic解決策は何ですか?
構文が無効であり、d.keys()
に電話する必要もありません。
if key not in d:
d[key] = value
で十分です。より明確で読みやすい方法はありません。
あなたはキーが既に存在する場合、既存の値を返しますdict.get()
、再び更新することができます:
d[key] = d.get(key, value)
が、私は強く反対をお勧めします。これはコードゴルフであり、メンテナンスと読みやすさの妨げになっています。
使用dict.setdefault()
:あまりにも値にアクセスしようとしたとき
>>> d = {1: 'one'}
>>> d.setdefault(1, '1')
'one'
>>> d # d has not changed because the key already existed
{1: 'one'}
>>> d.setdefault(2, 'two')
'two'
>>> d
{1: 'one', 2: 'two'}
'dict.setdefault()は、'、実際にのみ使用してください。 –
@MartijnPieters:なぜそれは重要ですか? 'setdefault()'という名前は、何が起こっているのかを明確に記述しています。値がそれほど重要でないことを返します。少し奇抜なIMOです。なぜこれが望ましくないのか、あなたは簡単な説明やリンクを提供することができますか? – mhawke
グループ化ループのように、値が存在することを期待する式で使用します。 'for ober in iterable:d.setdefault(key_for_obj(obj)、[])。append(obj)'。返される値については奇妙なものはありません。*はメソッドの全体の点です*。 –