【发布时间】:2019-06-22 15:40:05
【问题描述】:
我有以下代码:
file = open('MyCSV.csv') # this read the Headers name
reader = csv.reader(file)
Data = next(reader,None)
Data = Data[1:]
DataTmp = Data
for item in DataM: # DataM is a list with one element from Data
Data.remove(item) #remove one item
#
print(len(Data))
print(len(DataTmp))
所以,我打开MyCSV.csv 文件,读取标题行,并将其存储在变量Data 中。我还通过DataTmp 复制了Data。最初,列表Data 有10 个元素。
然后,我从Data 中删除了一个元素。
现在,我希望Data 的长度是9,而DataTmp 的长度仍然是10。但是,我得到的答案是DataTmp 的长度也是9。为什么?我从未更改过DataTmp,我在从Data 中删除元素之前定义了它。
感谢您的帮助!
【问题讨论】:
-
DataTmp = Data使它们成为相同的对象。那不会复制。影响一个会影响另一个。 -
@Carcigenicate 谢谢!现在我明白了。我曾经使用 Matlab 而不是 python,我想这是我学到的第一个“大”差异。
-
是的,我很确定就在几天前,我从 MATLAB 的其他人那里看到了类似的问题。这似乎是一个常见的混淆点。