Python 的 `append()` 和 `=` 運算子何時會對列表產生不同的結果?

Mary-Kate Olsen
發布: 2024-10-28 16:53:29
原創
475 人瀏覽過

 When Does Python's `append()` and ` =`  Operator Produce Different Results with Lists?

為什麼Python的append()和=運算子對列表產生不同的結果

在Python方法中,append()方法和=運算符的行為應用於清單時有所不同。雖然兩者看起來都將元素追加到現有清單中,但由於其底層操作,它們實際上會產生不同的結果。

append()

直接使用append()方法將一個物件(無論是元素還是另一個清單)追加到原始清單的末尾。此過程會導致對原始清單的參考新增至清單。

= 運算子

另一方面,= 運算子執行以元素增加兩個運算元。與列表一起使用時,它可以有效地將第二個操作數的元素連接到第一個操作數的末尾,從而創建一個新列表。

範例

考慮以下程式碼:

<code class="python">>>> c = [1, 2, 3]

# Appending a list to itself using append() leads to infinite recursion
c.append(c)

# Element-wise addition using += concatenates the lists
c += c</code>
登入後複製

輸出

輸出

在第一種情況下,使用c.append(c) 將列表c 加到自身會建立無限遞歸。這是因為 c 的最後一個元素實際上是對 c 本身的引用,並且該引用被追加到列表中,從而導致無限循環。 在第二種情況下,使用 c = c 執行逐元素操作新增。這意味著 c 的元素被加到自身,從而產生一個新列表 [1, 2, 3, 1, 2, 3]。

替代:extend()
<code class="python">c.extend([4, 5, 6])</code>
登入後複製

如果所需的行為是將一個列表的元素附加到另一個列表,則可以使用extend() 方法而不是= 。它會原地修改原始列表,而不建立新列表。

結論綜上所述,Python 的append() 方法將物件直接追加到列表的末尾列表,而列表的= 運算符執行逐元素加法並建立一個新清單。方法的選擇取決於預期的操作以及是否需要修改原始清單。

以上是Python 的 `append()` 和 `=` 運算子何時會對列表產生不同的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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