ホームページ >バックエンド開発 >Python チュートリアル >Python で空のリスト ディクショナリを初期化するときに共有リスト参照を回避するにはどうすればよいですか?
Python での空のリスト辞書の初期化
fromkeys メソッドを使用してリストの辞書を作成しようとすると、予期しない動作が発生する可能性があります。辞書キーは、1 つのキーに追加するときに更新されます。これは、fromkeys が単一のリスト オブジェクトを作成し、それをすべてのキーの値として参照するためです。
この問題を解決するには、辞書内包表記を使用します。
data = {k: [] for k in range(2)}
この内包表記により、新しいリストが作成されます。各キーのオブジェクトを作成し、各キーが独自の独立したリストを持つようにします。
または、以前の Python バージョンでは、 2.7 では、dict コンストラクターに渡されるリスト内包表記を使用します:
data = dict([(k, []) for k in range(2)])
。または、Python 2.4 ~ 2.6 では、ジェネレーター式を dict に渡すことができます:
data = dict((k, []) for k in range(2))
以上がPython で空のリスト ディクショナリを初期化するときに共有リスト参照を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。