Tôi biết rằng điều này nghe có vẻ tầm thường nhưng tôi không nhận ra rằng hàm sort()
của Python là lạ. Tôi có một danh sách các "số" thực sự ở dạng chuỗi, vì vậy trước tiên tôi chuyển đổi chúng thành ints, sau đó cố gắng sắp xếp.Cách sắp xếp danh sách bằng số?
list1=["1","10","3","22","23","4","2","200"]
for item in list1:
item=int(item)
list1.sort()
print list1
Cung cấp cho tôi:
['1', '10', '2', '200', '22', '23', '3', '4']
Những gì tôi muốn là
['1','2','3','4','10','22','23','200']
Tôi đã nhìn xung quanh cho một số các thuật toán liên quan đến sắp xếp bộ số, nhưng những người tôi thấy tất cả liên quan đến sắp xếp các bộ chữ và số.
Tôi biết đây có thể là vấn đề không có trí tuệ nhưng google và sách giáo khoa của tôi không cung cấp bất kỳ thứ gì hữu ích hơn hoặc ít hơn chức năng .sort()
.
Lưu ý rằng vòng lặp for của bạn không làm những gì tôi nghi ngờ bạn nghĩ. – deinst
Không có lúc nào bạn cập nhật 'list1'. Điều gì khiến bạn nghĩ rằng 'danh sách' đã được cập nhật? –
Vấn đề tương tự tăng lên khi list1 = ['1', '1.10', '1.11', '1.1', '1.2'] được cung cấp làm đầu vào. Thay vì nhận được kết quả đầu ra là ['1', '1.1', '1.2', '1.10', '1.11'], tôi nhận được ['1', '1.1', '1.10', '1.11', '1.2' ] – sathish