lst = [(1,(1,3,5)), (5,(2,3,4)),(3,(2,3,4))]
Tôi muốn sắp xếp theo giá trị đầu tiên, thứ tự giảm dần.Python cách sắp xếp danh sách này?
lst = [(1,(1,3,5)), (5,(2,3,4)),(3,(2,3,4))]
Tôi muốn sắp xếp theo giá trị đầu tiên, thứ tự giảm dần.Python cách sắp xếp danh sách này?
chỉ như thế này:
sorted(lst, reverse=True)
sorted(list, reverse=True, key=lambda x: x[0])
Cũng lưu ý rằng "danh sách" không phải là tên tuyệt vời cho danh sách của bạn vì đây là danh sách được tích hợp sẵn.
import operator
sorted(lst, reverse=True, key=operator.itemgetter(0))
Bạn có thể sắp xếp như thế này.
sorted(lst, key=lambda a: a[0], reverse=True)
Sắp xếp tại chỗ? Sử dụng:
lst.sort(reverse=True)
cho mọi người trả lời khác: chỉ mục không bắt buộc. Python luôn sắp xếp danh sách theo phần tử đầu tiên mà nó tìm thấy. –
thực sự, Python so sánh tuples theo thứ tự từ điển, do đó, nó không chỉ sắp xếp danh sách/bộ dữ liệu theo các phần tử đầu tiên của chúng. Sự khác biệt này là quan trọng nếu phân loại "ổn định" theo yếu tố đầu tiên là mong muốn. – hvr