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

Kiểm tra hai danh sách giống hệt nhau trong Python

Trong phân tích dữ liệu Python, cần so sánh 2 list xem có giống hệt nhau (cùng phần tử) hay không.

Ví dụ: Sắp xếp và so sánh

listA = ['Mon', 'Tue', 'Wed', 'Thu']
listB = ['Mon', 'Wed', 'Tue', 'Thu']  # Danh sách cho trước
print("Given listA: ", listA)
print("Given listB: ", listB)
# Sắp xếp list
listA.sort()
listB.sort()
# Kiểm tra bằng nhau
if listA == listB:
    print("Lists are identical")
else:
    print("Lists are not identical")

Kết quả

Chạy đoạn mã trên cho kết quả sau:

Given listA: ['Mon', 'Tue', 'Wed', 'Thu'] Given listB: ['Mon', 'Wed', 'Tue', 'Thu'] Lists are identical

Sử dụng Counter

Counter từ collections đếm số lần xuất hiện mỗi item. Nếu tần suất mỗi phần tử bằng nhau trong 2 list -> identical. Ví dụ có phần tử trùng lặp.

Ví dụ

import collections
listA = ['Mon', 'Tue', 'Wed', 'Tue']
listB = ['Mon', 'Wed', 'Tue', 'Tue']  # Danh sách cho trước
print("Given listA: ", listA)
print("Given listB: ", listB)
# Kiểm tra bằng nhau
if collections.Counter(listA) == collections.Counter(listB):
    print("Lists are identical")
else:
    print("Lists are not identical")
# Kiểm tra lại
listB = ['Mon', 'Wed', 'Wed', 'Tue']
print("Given listB: ", listB)
if collections.Counter(listA) == collections.Counter(listB):
    print("Lists are identical")
else:
    print("Lists are not identical")

Kết quả

Chạy đoạn mã trên cho kết quả sau:

Given listA: ['Mon', 'Tue', 'Wed', 'Tue'] Given listB: ['Mon', 'Wed', 'Tue', 'Tue'] Lists are identical
Given listB: ['Mon', 'Wed', 'Wed', 'Tue'] Lists are not identical