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 サイトの他の関連記事を参照してください。