辞書のリストがあり、このリストの各要素にキーを追加したいと考えています。私は試した:
result = [ item.update({"elem":"value"}) for item in mylist ]
しかし、更新メソッドは None を返すため、結果リストは None でいっぱいです。
result = [ item["elem"]="value" for item in mylist ]
構文エラーを返します。
辞書のリストがあり、このリストの各要素にキーを追加したいと考えています。私は試した:
result = [ item.update({"elem":"value"}) for item in mylist ]
しかし、更新メソッドは None を返すため、結果リストは None でいっぱいです。
result = [ item["elem"]="value" for item in mylist ]
構文エラーを返します。
更新された辞書への参照は古い辞書への参照と同じであるため、辞書の新しいリストの作成について心配する必要はありません。
for item in mylist:
item.update( {"elem":"value"})
>>> a = [ { 1:1 }, {2:2}, {3:3} ]
>>> for item in a:
... item.update( { "test": "test" } )
...
>>> a
[{'test': 'test', 1: 1}, {'test': 'test', 2: 2}, {'test': 'test', 3: 3}]
リスト内包表記を正しく使用していません。呼び出しitem.update
は値を返すNone
ため、新しく作成されたリストはNone
期待dict
値ではなく値でいっぱいになります。
リストには値への参照が保持されているため、リスト内の項目をループし、それに応じてそれぞれを更新するだけで済みdict
ます。
リスト内包表記を使用しないか、元の dict と新しいキーに基づいて新しいdict を返します。
[dict(list(item.items()) + [("elem", "value")]) for item in mylist]