我需要这个概念的帮助。我是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文件正在尝试比较(一行分隔的""和一个逗号分隔)。我正在尝试从列表 1 中查找列表 2 中存在的项目,但我似乎无法让它迭代过去列表 1 中的第一个项目?如果 Python 中有一个 eof,那就更容易了。我知道我在某个地方犯了一个愚蠢的错误,我只是不知道在哪里。
您的问题是在 if 子句和打印子句中添加索引。您不需要指定索引,甚至不需要指定索引,因为这会导致意外行为。从列表中获取 for 循环中的值时,每次迭代定义的变量(row、row2)将仅包含列表中的后续项。应将代码更改为以下内容:
for row in list1:
print(row)
for row2 in list2:
print(row2)
if row == row2:
print(“match”)
else:
print(row2 + ' ' + row