清單的清單:子清單之間的意外變更解釋
在Python 中,當建立清單清單時,使用[x] * n 將結果是一個列表,其中包含對相同基礎列表的多個參考。修改一個子清單中的值時,此行為可能會導致所有子清單發生意外變更。
例如,請考慮以下程式碼:
xs = [[1] * 4] * 3
此程式碼建立一個列表列表,其中每個列表sublist 引用相同的包含四個 1 的基礎列表。當我們改變子清單中的某個元素:
xs[0][0] = 5
變更會反映在所有子清單中。發生這種情況是因為原始列表列表僅具有對同一基礎子列表的三個引用,而不是三個不同的子列表。
要建立具有不同值的單獨子列表,您可以使用列表理解:
xs = [[1] * 4 for _ in range(3)]
在這種情況下,列表推導式為新列表列表中的每個元素創建一個包含四個1 的新列表,從而產生三個不同的子列表。
以上是為什麼對一個子清單的變更會影響使用「[x] * n」建立的 Python 清單中的所有子清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!