不等列表行上的python循环

不等列表行上的python循环,python,Python,我有两个tex文件,其中包含不相等数量的行和列。现在我想将一个tex文件中的列表与另一个文件中的列表进行比较,如果它与另一个文件中的列表匹配,则打印相应的数字。例如,我的文件看起来像 test1.txt test2.txt XCJ2200, B XCJ1945, A, 0.1 XCJ2345, E XCJ2200, B, 0.2 XCJ2568, F XCJ2450, C, 0.3 .... XCJ2590, D, 0.4

我有两个tex文件,其中包含不相等数量的行和列。现在我想将一个tex文件中的列表与另一个文件中的列表进行比较,如果它与另一个文件中的列表匹配,则打印相应的数字。例如,我的文件看起来像

test1.txt       test2.txt

XCJ2200, B      XCJ1945, A, 0.1
XCJ2345, E      XCJ2200, B, 0.2
XCJ2568, F      XCJ2450, C, 0.3
....            XCJ2590, D, 0.4
                XCJ3000, E, 0.4
                ....
现在我想将test1.txt的第1列和第2列与test2.txt的第1列和第2列进行匹配。所以我想要最终的输出

XCJ2200  0.2
XCJ2345  0.4
XCJ2568
....
到目前为止,我已经编写了以下代码,但并没有给出我想要的答案:

reader1=csv.reader(open('test1.txt','rb'))
reader2=csv.reader(open('test2.txt','rb'))
col1=[];col2=[];Col1=[];Col2=[];Col3=[]
for row in reader1:
   col1.append((row[0]))
   col2.append((row[1]))
for row in reader2:
   Col1.append((row[0]))
   Col2.append((row[1]))
   Col3.append((row[2]))
for i in range(len(col1)):
   for j in range(len(Col1)):
     if Col1[j]==col1[i] or Col2[j]==col1[i]:
         print col1[i],Col3[j]
     else:
         print col1[i]

此代码以test2.txt第1列长度的倍数打印test1.txt第1列。我知道最后一个if和else条件有问题。

可能最简单的方法之一是将test2.txt读入字典,您可以使用字典查找元组(行[0],行[1])。使用dict.get()可以指定默认值“”:


你能附上正在打印的代码吗?还是它的样本?此外,我不知道
Col2[j]==col1[I]
将如何返回true。我想你的意思是说你是对的。它是Col2[j]==Col2[i]。这段代码给了我XCJ2200 XCJ2200 0.2 XCJ2200 XCJ2200 XCJ2345 XCJ2345 XCJ2345 0.3 XCJ2345是的,这是我想要的。对不起,我忘了提到这段代码没有检查我的其他条件,即'Col2[j]==Col2[I]'。这应该是因为它正在检查元组
(行[0],行[1])
是否相等,在你的代码中是Col1和Col2。那么解决方案应该是什么呢?是否还有其他选项需要查看?这应该检查Col1和Col2。建议您发布另一个问题,显示您的代码、结果和预期结果。
with open('test2.txt', 'rb') as f:
    reader = csv.reader(f)
    lookup = {(row[0], row[1]): row[2] for row in reader}
with open('test1.txt', 'rb') as f:
    reader = csv.reader(f)
    data = [(row[0], row[1]) for row in reader]
for d in data:
    print d[0], lookup.get(d, "")