ホームページ >バックエンド開発 >Python チュートリアル >Python の `fromkeys` メソッドを使用するときに共有参照を回避するにはどうすればよいですか?

Python の `fromkeys` メソッドを使用するときに共有参照を回避するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 20:25:18855ブラウズ

How Can I Avoid Shared References When Using Python's `fromkeys` Method?

fromkeys メソッドとその制限事項を理解する

fromkeys メソッドを使用して辞書を初期化する場合、次の動作を認識することが重要です。単一要素の引数。 2 番目の引数としてリストを渡すと、すべてのディクショナリ値が同じリスト オブジェクトを参照します。

意図しない共有の回避: 代替アプローチ

値の意図しない共有を防ぐには、代替品の使用を検討するメソッド:

  • 辞書内包 (Python 2.7 ):

    data = {k: [] for k in range(2)}
  • 辞書によるリスト内包コンストラクター:

    data = dict([(k, []) for k in range(2)])
  • 辞書を使用したジェネレーター式 (Python 2.4-2.6):

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

簡単な例: に値を追加する特定のキー

次のコードは、意図した動作を示しています。

data = {0: [], 1: []}
data[1].append('hello')
print(data)
# Output: {0: [], 1: ['hello']}

提案された方法のいずれかを使用すると、空のリストのディクショナリを初期化し、個々のキー値を変更できます。他のものに影響を与えることなく。

以上がPython の `fromkeys` メソッドを使用するときに共有参照を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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