เมื่อต้องการเรียงลำดับลิสต์ของทัพเพิลตามลำดับที่กำหนดในลิสต์อื่น สามารถแปลงเป็นดิกชันนารีแล้วสร้างลิสต์ใหม่ตามลำดับที่ต้องการ
ตัวอย่างโค้ด
my_list = [('Mark', 34), ('Will', 91), ('Rob', 23)]
print("The list of tuples is:")
print(my_list)
ordered_list = ['Will', 'Mark', 'Rob']
print("The ordered list is:")
print(ordered_list)
temp_dict = dict(my_list)
result = [(key, temp_dict[key]) for key in ordered_list]
print("The ordered tuple list is:")
print(result)ผลลัพธ์
The list of tuples is: [('Mark', 34), ('Will', 91), ('Rob', 23)]
The ordered list is: ['Will', 'Mark', 'Rob']
The ordered tuple list is: [('Will', 91), ('Mark', 34), ('Rob', 23)]คำอธิบาย
แปลงลิสต์ทัพเพิลเป็นดิกชันนารีเพื่อเข้าถึงค่าด้วยคีย์ได้เร็ว (O(1))
ใช้ List Comprehension วนตาม
ordered_listดึงค่าจากดิกชันนารีสร้างลิสต์ทัพเพิลใหม่เรียงตามลำดับที่ต้องการ
วิธีนี้มีประสิทธิภาพมากกว่าการค้นหาในลิสต์เดิมซ้ำๆ