ホームページ >バックエンド開発 >Python チュートリアル >Python で空のリスト ディクショナリを初期化するときに共有リスト参照を回避するにはどうすればよいですか?

Python で空のリスト ディクショナリを初期化するときに共有リスト参照を回避するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 05:43:09321ブラウズ

How to Avoid Shared List References When Initializing Empty List Dictionaries in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。