Compare Tuples ใน Python
เมื่อต้องการเปรียบเทียบ Tuple สองตัว สามารถใช้ Operator <, >, และ == ได้โดยตรง
หลักการเปรียบเทียบ Tuple
Python เปรียบเทียบ Tuple แบบ Lexicographical Order (เหมือนคำในพจนานุกรม) คือเปรียบเทียบ Element ตัวแรกก่อน ถ้าเท่ากัน纔ไปตัวที่สอง ต่อไปเรื่อยๆ
ตัวอย่างโค้ด
my_tuple_1 = (87, 90, 31, 85)
my_tuple_2 = (34, 56, 12, 5)
print("The first tuple is :")
print(my_tuple_1)
print("The second tuple is :")
print(my_tuple_2)
print("Comparing the two tuples")
print(my_tuple_1 < my_tuple_2) # False
print(my_tuple_1 == my_tuple_2) # False
print(my_tuple_2 > my_tuple_1) # False
ผลลัพธ์
The first tuple is : (87, 90, 31, 85) The second tuple is : (34, 56, 12, 5) Comparing the two tuples False False False
คำอธิบาย
- กำหนด Tuple 2 ตัว และแสดงผล
- เปรียบเทียบด้วย
<,==,> - แสดงผล True/False
ทำไมผลลัพธ์ทั้งสามเป็น False?
เพราะ Tuple แรกเริ่มต้นด้วย 87 ซึ่ง มากกว่า 34 ของ Tuple ที่สอง ดังนั้น:
my_tuple_1 < my_tuple_2→ False (87 ไม่น้อยกว่า 34)my_tuple_1 == my_tuple_2→ False (ไม่เท่ากัน)my_tuple_2 > my_tuple_1→ False (34 ไม่มากกว่า 87)
ตัวอย่างเพิ่มเติม
# กรณี Element ตัวแรกเท่ากัน
t1 = (10, 20, 30)
t2 = (10, 15, 40)
print(t1 > t2) # True เพราะ 20 > 15
# กรณีความยาวต่างกัน
t3 = (1, 2, 3)
t4 = (1, 2)
print(t3 > t4) # True เพราะ t3 ยาวกว่าและ Element ตรงกันหมด