【发布时间】:2018-01-14 21:23:55
【问题描述】:
我遇到了一个与在其他数组中复制数组元素有关的奇怪问题,让我用代码解释一下:
如果我执行以下操作,我正在将 csv 加载到二维数组中:
e = [None] * 4
with open("file.csv") as f:
for line in f:
e=line.split(",")
finalarray.append(e)
如果我这样做,在 finalarray 中我只会得到最后一个 csv 条目一直重复,但是,如果我这样做:
with open("file.csv") as f:
for line in f:
finalarray.append(line.split(","))
就像一个魅力,但我无法理解为什么第二个选项有效,而第一个选项总是无法加载最后一个 csv 条目。
致以诚挚的问候,并提前致谢。
【问题讨论】:
-
两者都应该工作,尽管使用 csv 模块会更好。你确定这是你的代码吗? minimal reproducible example请
-
这两种行为没有理由不同。可能你之前做了一些你没有在这里写的事情。
-
Nitpick:“进入二维数组”不,您正在使用包含其他列表的列表。
-
这里的关键问题:
finalarray在哪里定义?请提供minimal reproducible example