ホームページ >バックエンド開発 >Python チュートリアル >Python で空のリストの辞書を適切に初期化する方法?

Python で空のリストの辞書を適切に初期化する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 00:35:12206ブラウズ

How to Properly Initialize a Dictionary of Empty Lists in Python?

Python で空のリストの辞書を初期化するアプローチ

Python でリストの辞書を作成することは、さまざまな方法を使用して実現できます。ただし、dict.fromkeys() メソッドを使用して試行すると、個々のキーを更新すると辞書内の他のすべてのキーも変更されるという問題が発生する可能性があります。

dict.fromkeys( ) メソッド

Python の dict.fromkeys() メソッドは、最初の引数で指定されたキーを使用して新しい辞書を初期化します。各キーに関連付けられた値は 2 番目の引数で、デフォルトは None です。空のリスト [] が 2 番目の引数として指定された場合、結果の辞書内のすべての値が同じリスト オブジェクトを参照します。この動作は、質問で述べた予期しない結果につながります。

初期化の代替方法

前述の問題を回避するには、代替アプローチを使用できます。

1.辞書内包表記 (Python 2.7 以降)

data = {key: [] for key in range(2)}

このアプローチでは、辞書内包表記を使用して、各キーが空のリストにマップされる新しい辞書を作成します。

2.リスト内包表記 (Python 2.4-2.6)

data = dict([(key, []) for key in range(2)])

この場合、リスト内包表記を使用してタプルのリストが生成されます。各タプルはキーと空のリストで構成されます。次に、タプルのリストが dict コンストラクターに渡されて、辞書が作成されます。

3.ジェネレーター式 (Python 2.4-2.6)

data = dict((key, []) for key in range(2))

リスト内包アプローチと同様に、ジェネレーター式は dict コンストラクターで直接使用でき、括弧で囲む必要がなくなります。

以上がPython で空のリストの辞書を適切に初期化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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