Khi cần lọc các tuple chỉ chứa chữ in hoa (uppercase) từ list tuple, ta dùng vòng lặp, biến boolean, append() và isupper().
Ví dụ
my_list = [("PYTHON", "IS", "Fun"), ("PYTHON", "COOl"), ("PYTHON",), "ORIENTED", "OBJECT"]
print("Danh sách:")
print(my_list)
my_result_list = []
for sub_list in my_list:
my_result = True
for element in sub_list:
if not element.isupper():
my_result = False
break
if my_result:
my_result_list.append(sub_list)
print("Kết quả (chỉ toàn uppercase):")
print(my_result_list)
Kết quả đầu ra
Danh sách:
[('PYTHON', 'IS', 'Fun'), ('PYTHON', 'COOl'), ('PYTHON',), 'ORIENTED', 'OBJECT']
Kết quả (chỉ toàn uppercase):
[('PYTHON',), 'ORIENTED', 'OBJECT']
Giải thích
- Duyệt từng phần tử của list ngoài (có thể là tuple hoặc string).
- Với mỗi phần tử con, kiểm tra
element.isupper(). - Tuple 1: "Fun" không phải uppercase → loại.
- Tuple 2: "COOl" có chữ thường → loại.
- Tuple 3: ("PYTHON",) → toàn uppercase → giữ.
- String "ORIENTED", "OBJECT" → toàn uppercase → giữ.
Cách viết gọn (list comprehension):
result = [item for item in my_list if all(str(e).isupper() for e in (item if isinstance(item, tuple) else (item,)))]