【发布时间】:2014-10-27 02:47:36
【问题描述】:
我有一个包含 2 列的 csv 文件。我只是想弄清楚每个row[0] 值是否在某个row[1] 中,如果是,则打印row。
csv 文件中的项目:
COL1, COL2
1-A, 1-A
1-B, 2-A
2-A, 1-B
2565, 2565
51Bc, 51Bc
5161, 56
811, 65
681, 11
55, 3
3, 55
代码:
import csv
doc= csv.reader(open('file.csv','rb'))
for row in doc:
if row[0] in row[1]:
print row[0]
最终结果应该是:
1-A
1-B
2-A
2565
51Bc
55
3
相反,它给了我:
1-A
2565
51Bc
它会打印这些数字,因为它们并排相邻,但我需要它做的是获取 COL1 中的第一项,看看它是否在整个 COL2 列表中找到它,如果找到则打印。不看它是否彼此相邻并打印它。
【问题讨论】:
-
您需要遍历
csv一次以列出所有row[1]元素。然后你实际上会有一个列表,你可以在上面进行in比较。当前的方式,您只是将一个元素与另一个元素进行比较。 -
在给它一个参数之前,我如何让它遍历整个事情一次?
-
您的标题显示“如果行 [1] 中的行 [0]”。您的描述说“我只是想弄清楚行 [1] 是否在行 [0] 中。”你意识到那些不是一回事,对吧?
-
是的,那是我的错。抱歉,当我指定行时,我不知道如何调用它,因为无论如何它都会调用相同的东西。将它们作为一个列表是我如何发现我说了同样的话并且没有理解它的原因。只是我在这方面是个菜鸟......