簡體   English   中英

為什么列表沒有變化?

[英]Why doesn't list change?

在 Python 中:

    b = []
    a = np.arange(2)
    b.append(a)
    a = np.arange(4)
    b.append(a)
    print(b) # gives [array([0, 1]), array([0, 1, 2, 3])]

為什么不給出[array([0, 1, 2, 3]), array([0, 1, 2, 3])]

有很多問題是相反的(以確保列表不會改變 - 請參閱此處有關引用和值的解釋)。

從上面的鏈接中,我希望b[0] == b[1]因為我更新a ,但事實並非如此。 我錯過了什么?

a = np.arange(4)不會更新 a 中a值,它會將引用重新分配給新數組。 這反映在b中,因為它有兩個不同的 arrays 作為元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM