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

โปรแกรม Python เรียงลำดับ Tuple ตามค่าสูงสุดในแต่ละ Tuple

เมื่อต้องการเรียงลำดับ list of tuples ตามค่าสูงสุด (maximum element) ในแต่ละ tuple สามารถใช้ฟังก์ชัน max() เป็น key ในการ sort

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

def get_max_value(my_val):
    return max(my_val)

my_list = [(4, 6, 8, 1), (13, 21, 42, 56), (7, 1, 9, 0), (1, 2)]
print("The list is:")
print(my_list)
my_list.sort(key=get_max_value, reverse=True)
print("The sorted tuples are:")
print(my_list)

ผลลัพธ์

The list is: [(4, 6, 8, 1), (13, 21, 42, 56), (7, 1, 9, 0), (1, 2)]
The sorted tuples are: [(13, 21, 42, 56), (7, 1, 9, 0), (4, 6, 8, 1), (1, 2)]

คำอธิบาย

  • ฟังก์ชัน get_max_value คืนค่าสูงสุดของ tuple ที่ส่งเข้า

  • กำหนด list of tuples

  • เรียก my_list.sort(key=get_max_value, reverse=True)

    • key=get_max_value: ใช้ค่าสูงสุดของแต่ละ tuple เป็นเกณฑ์การเรียง
    • reverse=True: เรียงจากมากไปน้อย (descending)

วิธีเขียนสั้นกว่า (ไม่ต้องสร้างฟังก์ชันแยก):

my_list.sort(key=max, reverse=True)
# หรือ สร้าง list ใหม่ (ไม่เปลี่ยน list เดิม)
sorted_list = sorted(my_list, key=max, reverse=True)

ฟังก์ชัน max built-in ของ Python ใช้เป็น key ได้เลย เพราะรับ iterable (tuple) และคืนค่าสูงสุด