![](/img/trans.png)
[英]Appending modified object to list in for loop — only last modification is stored
[英]Appending a modified list into a list
我有一個列表a
,將其追加到列表l
,然后修改列表a
,然后再次將其追加到l
。
我的代碼是:
a = []
l = []
a.append(1)
l.append(a)
a.append(2)
l.append(a)
但是, l
現在是= [[1,2],[1,2]]
,而我希望l
是[[1], [1,2]]
。
我通過如下修改代碼來解決:
a = []
l = []
a.append(1)
l.append(list(a))
a.append(2)
l.append(list(a))
我的問題是:為什么追加修改列表的操作a
到一個列表中l
已包含a
修改甚至以前在項目l
追加為a
?
這是因為python中的列表是可變對象。 這意味着當您將列表分配給變量時,您正在向該列表傳遞“引用”(例如c
指針)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.