Sử dụng dictionary và list comprehension để sắp xếp lại list các tuple theo thứ tự key cho trước.
Ví dụ
my_list = [('Mark', 34), ('Will', 91), ('Rob', 23)]
print("List tuple gốc:", my_list)
order = ['Will', 'Mark', 'Rob']
print("Thứ tự mong muốn:", order)
temp_dict = dict(my_list) # Chuyển sang dict để tra cứu nhanh
result = [(key, temp_dict[key]) for key in order]
print("List tuple đã sắp xếp:", result)
Kết quả
List tuple gốc: [('Mark', 34), ('Will', 91), ('Rob', 23)]
Thứ tự mong muốn: ['Will', 'Mark', 'Rob']
List tuple đã sắp xếp: [('Will', 91), ('Mark', 34), ('Rob', 23)]
Giải thích
- Chuyển list tuple thành dictionary với key là tên, value là số.
- Duyệt qua list
order, lấy value tương ứng từ dictionary. - Tạo list tuple mới theo đúng thứ tự yêu cầu.
- Giả sử key trong order đều tồn tại trong dữ liệu gốc.