在Python中的两个列表中的同一索引上查找不匹配项

有时我们可能需要根据值和位置或索引来比较两个python列表中的元素。在本文中,我们将看到如何在相同位置的两个列表中查找元素值不匹配的元素。

使用for循环

我们可以设计for循环来比较相似索引处的值。标识值不匹配,然后将索引添加到结果列表。for循环首先获取第一个索引中的值,然后使用if条件将其与第二个列表中的值进行比较。

示例

listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']

# index variable
idx = 0

# Result list
res = []

# With iteration
for i in listA:
   if i != listB[idx]:
      res.append(idx)
   idx = idx + 1

# Result
print("The index positions with mismatched values:\n",res)

输出结果

运行上面的代码给我们以下结果-

The index positions with mismatched values:
[0, 3]

带拉链

当我们比较每个索引中的元素时,zip函数可以帮助我们编写较短的代码。在元素值不匹配的位置捕获索引值。

示例

listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']

res = [listB.index(n) for m, n in
      zip(listA, listB) if n != m]

# Result
print("The index positions with mismatched values:\n",res)

输出结果

运行上面的代码给我们以下结果-

The index positions with mismatched values:
[0, 3]

用枚举

它与zip函数中的方法类似,不同之处在于,在将枚举函数应用于列表之一时,这里有for循环遍历每个元素和索引。

示例

listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']

res = [idx for idx, elem in enumerate(listB)
                           if elem != listA[idx]]

# Result
print("The index positions with mismatched values:\n",res)

输出结果

运行上面的代码给我们以下结果-

The index positions with mismatched values:
[0, 3]