【发布时间】:2018-01-01 12:22:55
【问题描述】:
我创建了list1,通过附加标识为唯一的值来包含来自特定列的唯一值,以便执行某种“求和如果”。
下面是我正在努力解决的场景,内部循环,遍历 csv 行只执行一次。是否有一些特殊特征使得在嵌套循环的内部循环中遍历 csv 文件中的行有问题?
csv 内容:
Field1
row1
row2
row3
代码:
datafile = open(r"my_file.csv", "r")
myreader = csv.reader(datafile, delimiter=",")
list1 = ["A", "B", "C"]
for x in list1[:]:
print(x)
for y in myreader:
print(y)
预期结果:
A
row1
row2
row3
B
row1
row2
row3
C
row1
row2
row3
实际结果:
A
row1
row2
row3<
B
C
似乎只有内部循环的初始迭代有效。
如果我用另一个列表替换 csv,它可以正常工作:
datafile = open(r"my_file.csv", "r")
myreader = csv.reader(datafile, delimiter=",")
list1 = ["A", "B", "C"]
list2 = ["row1", "row2", "row2"]
for x in list2[:]:
print(x)
for y in list2:
print(y)
给出预期结果
而且我可以在一个循环中遍历 csv 行,这对以下内容没有问题:
x = 0
for y in myreader:
x = x + 1
print(y[2] + " INNER")
那么为什么不能一起工作呢?
【问题讨论】:
标签: python python-3.x list csv nested-loops