Tôi có một danh sách đó bao gồm các chi tiết như thế này:Sắp xếp theo python - cách sắp xếp danh sách chứa các giá trị chữ và số?
list1 = ["1", "100A", "342B", "2C", "132", "36", "302F"]
bây giờ, tôi muốn sắp xếp danh sách này, như vậy mà giá trị theo thứ tự sau:
list1 = ["1", "2C", "36", "100A", "132", "302F", "342B"]
Chỉ cần làm list1.sort()
rõ ràng không đưa ra câu trả lời đúng - nó mang lại:
list1 = ["1", "100A", "132", "2C", "36", "302F", "342B"]
tôi giả định này là bởi vì đối xử với tất cả python đây là các chuỗi trực tiếp. Tuy nhiên, tôi muốn sắp xếp chúng dựa trên giá trị số FIRST của chúng, và sau đó là ký tự theo sau số.
Tôi làm cách nào để tiếp tục?
Cảm ơn bạn rất nhiều :)
Xem bài đăng này (http://stackoverflow.com/questions/11850425/custom-python-list-sorting) và xác định hàm so sánh tùy chỉnh. – lurker
Điều này được gọi là ** sắp xếp tự nhiên **. có thể trùng lặp của [Python có được xây dựng trong chức năng cho chuỗi tự nhiên sắp xếp?] (http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural- sắp xếp) –