Sử dụng sorted()
với một key
như sau -
>>> unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']]
>>> sorted(unsorted_list, key = lambda x: int(x[3]))
[['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]
Các lambda
lợi nhuận là yếu tố thứ tư của mỗi danh sách bên trong và sorted
chức năng sử dụng mà để sắp xếp những danh sách. Điều này giả định rằng int(elem)
sẽ không thất bại trong danh sách.
Hoặc sử dụng itemgetter
(Theo bình luận Ashwini của chỉ ra, phương pháp này sẽ không hoạt động nếu bạn có cơ quan đại diện chuỗi các con số, kể từ khi họ đang bị ràng buộc để thất bại ở đâu đó cho số 2+ chữ số)
>>> from operator import itemgetter
>>> sorted(unsorted_list, key = itemgetter(3))
[['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]
Bạn có muốn để sắp xếp theo yếu tố thứ hai hay thứ tư? – Taymon