python 中的del
语句,当应用于列表时,会做一些非常奇怪的事情。它不仅会删除相关列表中的条目,而且还会“回溯”以删除从变量派生的任何列表中的相同元素。
例如:
>>> 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 应用 add 函数使 x 不受影响,因为它应该这样做。
这让我对我正在处理的删除“NA”脚本感到头疼。您是否知道该del
语句发生了什么,以及如何解决此问题,以便如果我设置z=x
然后将 del 应用于z
,则x
保持不变?