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

Python – Kiểm tra hàng trùng lặp trong ma trận (Matrix rows)

Giới thiệu

Để kiểm tra các hàng (rows) trùng lặp trong một ma trận (list of lists), ta chuyển mỗi hàng thành tuple, dùng Counter đếm tần suất, sau đó in ra các hàng có tần suất > 1.

Ví dụ minh họa

from collections import Counter

def find_dupes(my_matrix):
    my_matrix = map(tuple, my_matrix)
    freq_dict = Counter(my_matrix)
    for (row, freq) in freq_dict.items():
        if freq > 1:
            print(row)

my_matrix = [[1, 1, 0, 1, 0, 1],
             [0, 0, 1, 0, 0, 1],
             [1, 0, 1, 1, 0, 0],
             [1, 1, 0, 1, 0, 1],
             [0, 0, 1, 0, 0, 1],
             [0, 0, 1, 0, 0, 1]]

print("Ma trận ban đầu:")
print(my_matrix)
print("Các hàng trùng lặp (tần suất > 1):")
find_dupes(my_matrix)

Kết quả đầu ra

Ma trận ban đầu:
[[1, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1], [1, 0, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 1, 0, 0, 1]]
Các hàng trùng lặp (tần suất > 1):
(1, 1, 0, 1, 0, 1)
(0, 0, 1, 0, 0, 1)

Giải thích

  • map(tuple, ...) chuyển list sang tuple để hash được.
  • Counter đếm số lần xuất hiện của mỗi tuple.
  • Duyệt dict, in ra row có freq > 1.