2Dリストで単一の値を変更しようとするとおかしな挙動になる [duplicate]
2023-10-28 06:10:11
質問
重複の可能性があります。
Python のリストの中の予期せぬ機能
だから私はPythonに比較的新しいですし、私は2Dリストを操作するのに苦労しています。
以下は私のコードです。
data = [[None]*5]*5
data[0][0] = 'Cell A1'
print data
で、以下がその出力です(読みやすいように整形されています)。
[['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None]]
なぜすべての行に値が割り振られるのですか?
どのように解決するのですか?
これは、5つの参照を持つリストを作り 同じ のリストになります。
data = [[None]*5]*5
代わりに次のようなものを使って、5つの別々のリストを作ります。
>>> data = [[None]*5 for _ in range(5)]
これで期待通りの動作をするようになりました。
>>> data[0][0] = 'Cell A1'
>>> print data
[['Cell A1', None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None]]
関連
-
[解決済み] リストから要素を削除しようとすると、UnsupportedOperationExceptionが発生するのはなぜですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] リストに値が存在するかどうかを確認する最速の方法
-
[解決済み] リストの要素を値で削除する簡単な方法はありますか?
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] リスト内の項目を1つの文字列に連結するには?
-
[解決済み] リストから値の出現回数をすべて削除しますか?
-
[解決済み】ArrayとList<T>の比較。いつどちらを使うか?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リストの変更が不意にサブリスト全体に反映されたリスト
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] バブルソートの宿題
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] if 節の終了方法