首頁 > 後端開發 > Python教學 > 為什麼對一個子清單的變更會影響使用「[x] * n」建立的 Python 清單中的所有子清單?

為什麼對一個子清單的變更會影響使用「[x] * n」建立的 Python 清單中的所有子清單?

Linda Hamilton
發布: 2025-01-05 10:59:41
原創
289 人瀏覽過

Why Do Changes to One Sublist Affect All Sublists in a Python List of Lists Created Using `[x] * n`?

清單的清單:子清單之間的意外變更解釋

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板