リストの辞書を作成しようとすると、辞書内のすべてのキーが同じであるという予期しない問題が発生する可能性がありますリスト参照。これは、fromkeys() メソッドを使用し、2 番目の引数として空のリストを渡すときに発生します。
dict.fromkeys() メソッドは 2 つの引数を取ります。キーと値のコレクション。指定されたキーを使用して新しい辞書が作成され、各キーは指定された値にマップされます。
ただし、空のリスト [] が値として渡された場合、結果の辞書内のすべてのキーには、同じリストオブジェクト。これは、1 つのキーへの変更は他のすべてのキーにも影響することを意味します。
個別のリストの辞書を作成するには、次のいずれかの方法の使用を検討してください:
辞書の理解 (Python 2.7) )
data = {k: [] for k in range(2)}
dict() コンストラクターによるリスト内包表記
data = dict([(k, []) for k in range(2)])
dict() コンストラクターによるジェネレーター式 (Python) 2.4-2.6)
data = dict((k, []) for k in range(2))
これらのメソッドは、ディクショナリ内の各キーが個別のリスト オブジェクトに関連付けられることを保証し、他のキーに影響を与えることなく個々のキーを更新できるようにします。
以上がPython で空のリストのディクショナリを作成するときに共有リスト参照を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。