Cho list các tuple, sắp xếp tăng dần theo phần tử tại index n (key). Sử dụng sorted() với key function.
Ví dụ: Sắp xếp theo index 0
tuples = [(2, 2), (1, 2), (3, 1)]
key_index = 0
def kth_item(t):
return t[key_index]
result = sorted(tuples, key=kth_item)
print(result) # [(1, 2), (2, 2), (3, 1)]Cách ngắn gọn: Lambda
result = sorted(tuples, key=lambda t: t[key_index])
Xử lý lỗi IndexError
Nếu key_index >= len(tuple) → IndexError.
tuples = [(2, 2), (1, 2), (3, 1)]
key_index = 2 # tuple chỉ có index 0,1
try:
result = sorted(tuples, key=lambda t: t[key_index])
except IndexError as e:
print(f"Lỗi: {e}. Key index phải < {len(tuples[0])}")Sắp xếp theo nhiều key (tie-break)
# Sắp xếp theo index 1, nếu bằng thì index 0 data = [(3, 2), (1, 2), (2, 1), (2, 2)] result = sorted(data, key=lambda t: (t[1], t[0])) print(result) # [(2, 1), (1, 2), (2, 2), (3, 2)]
Sắp xếp giảm dần
result = sorted(tuples, key=lambda t: t[key_index], reverse=True)
Kết luận
sorted(list, key=lambda x: x[n]) là cách chuẩn để sort tuple/list theo index n. Lambda gọn nhẹ. Kiểm tra index hợp lệ trước khi sort. Dùng tuple key cho multi-level sorting.