У меня есть файл, который содержит список слов вроде:
word1 34
word2 12
word3 6
word4 498
word5 50
Я хочу отсортировать файл по числовому значению. Мой код:
sortedfreqlist = sorted(freqlist, key=operator.itemgetter(1), reverse=True)
Не работает, потому что он сортирует числа как слова i.e 12 приходит до 6 и т.д.
Любые идеи, как я могу это сделать?
Сортировка не работает, потому что ваши значения не имеют числового типа, поэтому применяется лексикографическая сортировка. Не забудьте преобразовать свой ключ сортировки в число, например, например:
sortedfreqlist = sorted(freqlist, key=lambda item: int(item[1]), reverse=True)
Поиск " натуральный сорт python" в вашей любимой поисковой системе, и вы найдете много разных решений.
Вот один из activestate.
Вот хорошее аккуратное решение в SO.