Python中的del
語句應用於列表時會產生一些非常奇怪的現象。它不僅會刪除相關列表中的條目,而且還會「回溯」以刪除變量所源自的任何列表中的相同元素。python del函數中的「backtracking」變量
例如:
>>> x
[1, 2, 3, 4, 5]
>>> z=x
>>> del z[1]
>>> z
[1, 3, 4, 5]
>>> x
[1, 3, 4, 5]
換句話說,即使我申請刪除對z
,刪除也適用於x
。這種「回溯」不會提出任何其他命令或功能,例如
>>> x=[1,2,3,4,5]
>>> z=x
>>> z+[6]
[1, 2, 3, 4, 5, 6]
>>> x
[1, 2, 3, 4, 5]
將增加功能應用於z使x不受影響,因爲它非常適合。
這讓我頭痛,因爲我正在刪除'NA'腳本。你知道del
聲明是怎麼回事,我該如何解決這個問題,以便如果我設置了z=x
,然後將del應用到z
,x
保持不變?
閱讀:http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages -have-variables – FogleBird