Sắp xếp danh sách chuỗi dựa trên ký tự cuối cùng của mỗi chuỗi. Sử dụng hàm key với negative indexing [-1].
Mã nguồn
def get_rear_position(element):
return element[-1] # Ký tự cuối
my_list = ['python', 'is', 'fun', 'to', 'learn']
print("Danh sách gốc:", my_list)
my_list.sort(key=get_rear_position)
print("Danh sách sau sắp xếp:", my_list)
Kết quả
Danh sách gốc: ['python', 'is', 'fun', 'to', 'learn'] Danh sách sau sắp xếp: ['python', 'fun', 'learn', 'to', 'is']
Giải thích
- Hàm
get_rear_positiontrả vềelement[-1](ký tự cuối). sort(key=...)sắp xếp dựa trên giá trị trả về của hàm key.- Ký tự cuối: 'n', 's', 'n', 'o', 'n' → thứ tự ASCII: 'n'=110, 'o'=111, 's'=115.
- Kết quả: 'python'(n), 'fun'(n), 'learn'(n), 'to'(o), 'is'(s).
- Các từ cùng ký tự cuối ('n') giữ thứ tự gốc (stable sort).
Cách ngắn gọn (lambda)
my_list.sort(key=lambda x: x[-1])
Áp dụng cho bất kỳ sequence nào hỗ trợ indexing (list, tuple, string).