在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]