Python сортировка файла по частоте

1

У меня есть файл, который содержит список слов вроде:

word1 34

word2 12

word3 6

word4 498

word5 50

Я хочу отсортировать файл по числовому значению. Мой код:

sortedfreqlist = sorted(freqlist, key=operator.itemgetter(1), reverse=True)

Не работает, потому что он сортирует числа как слова i.e 12 приходит до 6 и т.д.

Любые идеи, как я могу это сделать?

Теги:
string
file
sorting
int

2 ответа

3
Лучший ответ

Сортировка не работает, потому что ваши значения не имеют числового типа, поэтому применяется лексикографическая сортировка. Не забудьте преобразовать свой ключ сортировки в число, например, например:

sortedfreqlist = sorted(freqlist, key=lambda item: int(item[1]), reverse=True)
  • 0
    Это правильное решение, если все элементы во втором столбце можно интерпретировать как целые. Я неправильно понял вопрос.
0

Поиск " натуральный сорт python" в вашей любимой поисковой системе, и вы найдете много разных решений.

Вот один из activestate.

Вот хорошее аккуратное решение в SO.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню