Python сортировка файла по частоте - PullRequest
1 голос
/ 08 мая 2011

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

word1 34

word2 12

word3 6

word4 498

word5 50

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

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

Не совсем работает, потому что сортирует числа по словам, т.е. 12 идет перед 6 и т. Д.

Есть идеи, как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 08 мая 2011

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

sortedfreqlist = sorted(freqlist, key=lambda item: int(item[1]), reverse=True)
0 голосов
/ 08 мая 2011

Выполните поиск " natural sort python " в своей любимой поисковой системе, и вы найдете множество различных решений.

Вот один в activestate .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...