我需要帮助这个概念。我是Python的新手。
我知道我需要一个嵌套的for循环,但列表有两种不同的大小。我想循环.dat文件并检查它是否与.csv文件中的项目匹配。事情是这样的事情并不是很好。
for row in list1:
print(row)
for row2 in list2:
print(row2[1])
if row == row2[1]:
print(“match”)
else:
print(row2[1] + ' ' + row
)
这会吐出这样的输出:
list1-item1
list2-item1
list2-item1 list1-item1
list2-item2
list2-item2 list1-item1
list2-item3
list2-item3 list1-item1
由于放置打印件的位置,我可以看到它没有正确迭代。我有两个我试图比较的CSV文件(一行分隔' \ n'一个逗号分隔)。我试图从list2中找到list2中存在的项目,但我似乎无法让它迭代到list1中的第一项?如果Python中有一个eof会更容易。我知道我在某个地方犯了一个愚蠢的错误,我无法弄清楚在哪里。
答案 0 :(得分:0)
您的问题是在if子句和print子句中添加了索引。您不需要指定索引,更不应该指定索引,因为这会导致意外行为。从列表中获取for循环中的值时,每次迭代定义的变量(row,row2)将仅包含列表中的后续项。您应该将代码更改为以下内容:
for row in list1:
print(row)
for row2 in list2:
print(row2)
if row == row2:
print(“match”)
else:
print(row2 + ' ' + row