如何比较一个元组列表中的第一个元组与另一个列表中的第一个元组,然后将第二个元组与第二个列表中的元组进行比较,依此类推?

时间:2019-07-04 04:29:07

标签: python-3.x tuples iteration

我正在尝试比较两个由整数组成的元组列表,但似乎无法成功。 list_a = [(1,1),(2,2),(3,4),(4,1)] list_b = [(1,2),(2,2),(3,1),(4,1)]

我正在尝试将第一个元组与另一个列表的第一个元组进行比较,然后将第二个元组与第二个元组进行比较,然后是第三个元组,依此类推。

我试图遍历两个列表和值,如下所示。

for w, x in list_a: 
    for y, z in list_b:
        if x == z:
            total += 1
            break
        else:
            total -= 1
            break

在第一个循环中,来自value的变量“ w”和“ x”将获得值:(1,1)。然后“ y”和“ z”将得到(1、2)并进行比较。到目前为止,一切都很好。 我的问题是,然后“ y”和“ z”将遍历list_b的第二个元组,而“ w”和“ x”将保留在list_a的第一个元组中

我希望这是可以理解的,对不起,我有很好的英语知识,但有时很难解释这种情况。

1 个答案:

答案 0 :(得分:0)

您应该zip()一起使用它们,以便可以在一个迭代的列表中比较整个元组的值:

list_a = [(1, 1), (2, 2), (3, 4), (4, 1)] 
list_b = [(1, 2), (2, 2), (3, 1), (4, 1)]

total = 0
for (w, x), (y, z) in zip(list_a, list_b):
    # (w, x) are from list_a
    # (y, z) are from list_b
    if x == z:
        total += 1
    else:
        total -= 1