首頁  >  文章  >  後端開發  >  為什麼修改巢狀清單元素會影響 Python 中的所有子清單?

為什麼修改巢狀清單元素會影響 Python 中的所有子清單?

Barbara Streisand
Barbara Streisand原創
2024-11-02 04:34:02342瀏覽

Why Does Modifying a Nested List Element Affect All Sublists in Python?

巢狀清單索引

在 Python中使用嵌套列表時,了解列表引用的概念及其如何影響列表索引非常重要.

列表引用

與許多按值傳遞變數的程式語言不同,Python 透過引用傳遞列表。這意味著將列表分配給另一個變數會建立對記憶體中相同基礎列表物件的參考。

嵌套列表索引

在提供的程式碼中,出現了問題來自列表乘法的使用。 some_list = 4 * [(4 * [0])] 行建立四個對相同清單物件的引用,這表示對其中一個子清單的變更將影響所有四個子清單。

預期結果

預期結果為:

[0, 0, 0, 0]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]

實際結果

實際結果
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]
[0, 1, 1, 1]

實際結果為:

解決方案
some_list = [(4 * [0]) for _ in range(4)]

要避免此問題,請使用循環建立嵌套列表,而不建立對相同列表的多個引用。修正後的程式碼是:此循環建立四個獨立的列表,每個列表有四個零,確保實現預期的行為。

以上是為什麼修改巢狀清單元素會影響 Python 中的所有子清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn