将项目 1 列表 1 与项目 1 列表 2 进行比较,然后将项目 2 列表 2 进行比较,依此类推。无法正确迭代



我需要这个概念的帮助。我是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

最新更新