[英]Python Append vs list+list
我讀了Python list + list vs. list.append() ,這是一個類似的問題,但是我的問題更多地與下面的代碼有關
a = [[]] * 4
b = [[]] * 4
a[3] = a[3] + [1]
b[3].append(1)
print a, b
這使:
[[],[],[],[1]] [[1],[1],[1],[1]]
為什么這兩個有什么不同? 我從來沒有遇到過這樣的例子,其中這兩種方法具有不同的輸出...
謝謝
a[3] = a[3] + [1]
未修改a[3]
。 取而代之的是,它將新物品放在那里。 a[3] + [1]
創建一個與a[3]
相似的列表,只是它的末尾有一個額外的列表。 然后, a[3] = ...
將索引3
處的a
設置為該新列表。
b[3].append(1)
訪問b[3]
並使用其.append()
方法。 .append()
方法對列表本身起作用,並將一個放在列表末尾。 由於[[]] * 4
創建一個包含另一個列表的四個副本的列表,因此.append()
方法在b
所有項目中顯示其更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.