在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