我有以下代码:
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
中。我还复制了Data
的{{1}}。列表DataTmp
最初有10个元素。
然后,我从Data
中删除了一个元素。
现在,我希望Data
的长度为Data
,而9
的长度仍然为DataTmp
。但是,我得到的答案是10
的长度也是DataTmp
。为什么?我从未更改9
,并且在从DataTmp
删除元素之前定义了它。
感谢您的帮助!
答案 0 :(得分:0)
重要的更改是
import copy
AND
DataTmp = copy.copy(Data) # Use this instead of direct assignment.
代替
DataTmp = Data
使用以下代码。
import copy
file = open('MyCSV.csv') # this read the Headers name
reader = csv.reader(file)
Data = next(reader,None)
Data = Data[1:]
# DataTmp = Data
DataTmp = copy.copy(Data) # Use this instead of direct assignment.
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))