Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm phần tử không khớp tại cùng chỉ mục trong hai list Python


So sánh hai list theo cả giá trị và vị trí (chỉ mục), tìm các chỉ mục mà giá trị không khớp.

Cách 1: Vòng lặp for

Duyệt listA với biến chỉ mục idx, so sánh với listB[idx].

listA = [13, 'Mon', 23, 62, 'Sun']
listB = [5, 'Mon', 23, 6, 'Sun']
res = []
for idx, val in enumerate(listA):
    if val != listB[idx]:
        res.append(idx)
print("Chỉ mục không khớp:", res)  # [0, 3]

Cách 2: Sử dụng zip()

Dùng zip(listA, listB) để lấy cặp giá trị, lọc cặp không bằng nhau, lấy chỉ mục từ listB.index().

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]
print("Chỉ mục không khớp:", res)  # [0, 3]

Cách 3: Sử dụng enumerate()

Duyệt enumerate(listB), so sánh với listA[idx].

listA = [13, 'Mon', 23, 62, 'Sun']
listB = [5, 'Mon', 23, 6, 'Sun']
res = [idx for idx, elem in enumerate(listB) if elem != listA[idx]]
print("Chỉ mục không khớp:", res)  # [0, 3]