在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函数
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]
使用enumerate函数
这与zip函数的方法类似,只是这里我们使用for循环遍历每个元素和索引,同时将enumerate函数应用于其中一个列表。
示例
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]
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP