[解決済み] python: 辞書をリストに追加する - ポインタのような動作が見える
2022-11-19 11:40:37
質問
Pythonインタプリタにて以下を試しました。
>>>
>>> a = []
>>> b = {1:'one'}
>>> a.append(b)
>>> a
[{1: 'one'}]
>>> b[1] = 'ONE'
>>> a
[{1: 'ONE'}]
>>>
ここでは、リスト 'a' に辞書 'b' を追加した後、辞書 'a' のキー 1 に対応する値を変更しています。この変更は、なぜかリストにも反映されます。辞書をリストに追加するとき、私は辞書の値を追加しているだけではないのでしょうか?辞書へのポインタをリストに追加したように見えるので、辞書への変更がリストにも反映されています。
リストに変更を反映させたくありません。どうすればよいでしょうか。
お忙しい中、ありがとうございます。
どのように解決するのですか?
あなたのリストには、正しい 参照 を含むという点で正しいです。
a.append(b.copy())
でうまくいくはずです。
これは浅いコピーを作成することに留意してください。代替案としては
copy.deepcopy(b)
を使うことで、ディープコピーを作ることができます。
関連
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] リスト内包型辞書の作成
-
[解決済み】Pythonで辞書のキーをリストとして返すには?
-
[解決済み】Python 3.6+で辞書は順番に並びますか?
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法