有时我们可能需要根据值和位置或索引来比较两个python列表中的元素。在本文中,我们将看到如何在相同位置的两个列表中查找元素值不匹配的元素。
我们可以设计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]