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

Python – Lọc tuple có tất cả phần tử giống nhau

Khi cần lọc ra các tuple mà mọi phần tử đều giống nhau, ta dùng list comprehension, set() và len().

Ví dụ

my_list = [(31, 54, 45, 11, 99), (11, 11), (45, 45, 45), (31, 54, 45, 11, 99), (99, 99), (0, 0)]
print("Danh sách:")
print(my_list)

my_result = [sub_list for sub_list in my_list if len(set(sub_list)) == 1]

print("Kết quả (tuple đồng nhất):")
print(my_result)

Kết quả đầu ra

Danh sách:
[(31, 54, 45, 11, 99), (11, 11), (45, 45, 45), (31, 54, 45, 11, 99), (99, 99), (0, 0)]
Kết quả (tuple đồng nhất):
[(11, 11), (45, 45, 45), (99, 99), (0, 0)]

Giải thích

  • set(sub_list) lấy các giá trị duy nhất trong tuple.
  • Nếu len(set(...)) == 1 → tất cả phần tử giống nhau.
  • Tuple (31,54,45,11,99) có 5 giá trị khác nhau → loại.
  • Tuple (11,11), (45,45,45), (99,99), (0,0) → giữ.

Mở rộng: Kiểm tra tuple toàn giá trị bằng 0: all(v == 0 for v in sub_list).