У меня возникла проблема с сортировкой списка в Python. По какой-то причине он оценивает список по наивысшему значению, но после этого процесса другие элементы в этом списке больше не сортируются.Сортировка списков на основе первого целого числа
Мой код:
import csv
id_list = []
with open('source/to/file/output.csv', 'rt') as f:
reader = csv.reader(f, delimiter=',', quotechar='"')
for row in reader:
test = "177"
if test == row[0]:
id_list.append([row[2],row[1]])
generated_list = id_list[0], id_list[16], id_list[20]
print(generated_list)
print(sorted(generated_list))
Результат печати является:
-- (['17', '179'], ['5', '2641'], ['9', '3705']) # not sorted
-- [['17', '179'], ['5', '2641'], ['9', '3705']] # sorted
То, что я бы ожидать, что метод сортировки будет выводить:
-- [['17', '179'], ['9', '3705'], ['5', '2641']] # sorted
Могу ли я делать что-то не так?
Почему вы ожидали этого? Python ** строго типизирован **, он не будет рассматривать строки как числа. См. http://stackoverflow.com/q/4836710/3001761 для некоторых альтернатив. – jonrsharpe