ホームページ  >  記事  >  バックエンド開発  >  Python で空のリストを含む辞書を適切に初期化する方法

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

DDD
DDDオリジナル
2024-11-25 08:36:47152ブラウズ

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

Python での空のリストによる辞書の初期化

Python では、さまざまな方法で空のリストの辞書を作成できます。ただし、fromkeys メソッドは、すべての辞書キーによって参照される単一のリスト オブジェクトを作成するため、望ましい結果を生成しない可能性があります。

次の例を考えてみましょう:

data = {}
data = data.fromkeys(range(2), [])
data[1].append('hello')
print(data)

期待される結果: {0: [], 1: ['hello']}
実際の結果: {0: ['hello'], 1: ['hello']}

原因:

fromkeys を使用する場合、2 番目の引数 ([]) は単一のリスト オブジェクトとして扱われ、すべてのユーザーが参照します。結果の辞書内のキー。任意のキーに対する変更は、他のすべてのキーに反映されます。

解決策:

独立した空のリストの辞書を作成するには、辞書内包表記を使用します:

Python 2.7 以降:

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

Python バージョンの場合2.7 より前:

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

代わりに、Python 2.4 ~ 2.6 ではジェネレータ式を使用します:

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

これらのアプローチにより、ディクショナリ内の各キーが個別の空のリスト オブジェクトを参照することが保証されます。 、ディクショナリ値の独立した変更とアドレス指定が可能になります。

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

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