web-dev-qa-db-ja.com

Pythonで辞書キーに複数の値を追加する方法は?

python辞書の特定のキーに複数の値を追加したい。どうやってやるの?

a = {}
a["abc"] = 1
a["abc"] = 2

これにより、a ["abc"]の値が1から2に置き換えられます。

私が代わりに欲しいのは、a ["abc"]が複数の値(1と2の両方)を持つことです。

53

値をリストにします。

a["abc"] = [1, 2, "bob"]

更新:

キーに値を追加し、リストがまだない場合はリストを作成する方法がいくつかあります。そのような方法の1つを少しずつ説明します。

key = "somekey"
a.setdefault(key, [])
a[key].append(1)

結果:

>>> a
{'somekey': [1]}

次に、試してください:

key = "somekey"
a.setdefault(key, [])
a[key].append(2)

結果:

>>> a
{'somekey': [1, 2]}

setdefaultの魔法は、そのキーの値を初期化することですifそのキーが定義されていない場合、何もしません。ここで、setdefaultがキーを返すことに注意して、これらを1行に結合できます。

a.setdefault("somekey",[]).append("bob")

結果:

>>> a
{'somekey': [1, 2, 'bob']}

dictメソッド、特にget()メソッドを見て、これに慣れるためにいくつかの実験を行う必要があります。

111
James K Polk

どう?

a["abc"] = [1, 2]

これにより、次の結果が得られます。

>>> a
{'abc': [1, 2]}

それはあなたが探していたものですか?

16
MattDMo