比较项目1列表1到项目1列表2然后项目2列表2等等。无法正确迭代

时间:2015-01-15 22:08:27

标签: python list nested iteration

我需要帮助这个概念。我是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会更容易。我知道我在某个地方犯了一个愚蠢的错误,我无法弄清楚在哪里。

1 个答案:

答案 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