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).