Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

กรอง Tuple ที่เป็นตัวพิมพ์ใหญ่ทั้งหมด (All Uppercase)

แนวคิด

จากลิสต์ที่มี tuples และสตริง ให้คืนเฉพาะสมาชิกที่ "ทุกตัวอักษรเป็นพิมพ์ใหญ่" ใช้ str.isupper()

ตัวอย่างโค้ด

my_list = [("PYTHON", "IS", "Fun"), ("PYTHON", "COOl"), ("PYTHON",), "ORIENTED", "OBJECT"]
print("ลิสต์:", my_list)

result = []
for item in my_list:
    # แปลง item ให้เป็น iterable เสมอ (tuple หรือ string)
    elements = item if isinstance(item, (tuple, list)) else (item,)
    
    if all(elem.isupper() for elem in elements):
        result.append(item)

print("เฉพาะที่ uppercase ทั้งหมด:", result)

ผลลัพธ์

ลิสต์: [('PYTHON', 'IS', 'Fun'), ('PYTHON', 'COOl'), ('PYTHON',), 'ORIENTED', 'OBJECT']
เฉพาะที่ uppercase ทั้งหมด: [('PYTHON',), 'ORIENTED', 'OBJECT']

คำอธิบาย

  • ("PYTHON", "IS", "Fun") -> "Fun" ไม่ใช่ uppercase -> ตัด
  • ("PYTHON", "COOl") -> "COOl" มี 'l' เล็ก -> ตัด
  • ("PYTHON",) -> tuple เดียว ทุกตัว uppercase -> เก็บ
  • "ORIENTED", "OBJECT" -> string ทั้งหมด uppercase -> เก็บ

List Comprehension

result = [
    item for item in my_list
    if all(e.isupper() for e in (item if isinstance(item, (tuple, list)) else (item,)))
]

หมายเหตุ

isupper() คืน True ก็ต่อเมื่อมีตัวอักษรอย่างน้อย 1 ตัว และทุกตัวเป็นพิมพ์ใหญ่ สตริงที่ไม่มีตัวอักษร (เช่น "123", "!@#") จะคืน False