1. ホーム
  2. python

dict.fromkeys はすべて同じリストを指す [重複].

2023-11-01 16:14:05

質問

これにはちょっと困りましたね...。

リストから辞書を作成した

l = ['a','b','c']
d = dict.fromkeys(l, [0,0]) # initializing dictionary with [0,0] as values

d['a'] is d['b'] # returns True

辞書の各値を別々のリストにするにはどうしたらよいでしょうか? これは、すべてのキーを繰り返し、それらをリストと等しく設定することなく可能ですか? 私は、他のすべてのリストを変更することなく、1つのリストを変更したいと思います。

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

dict comprehensionを使うとよいでしょう。

>>> keys = ['a','b','c']
>>> value = [0, 0]
>>> {key: list(value) for key in keys}
    {'a': [0, 0], 'b': [0, 0], 'c': [0, 0]}