Коллекции Python Sort Collections.DefaultDict в порядке убывания - PullRequest
8 голосов
/ 17 апреля 2009

У меня есть этот бит кода:

    visits = defaultdict(int)
    for t in tweetsSQL:
         visits[t.user.from_user] += 1

Я посмотрел несколько примеров в Интернете, в которых использовался сортированный метод:

sorted(visits.iteritems, key=operator.itemgetter(1), reverse=True)

но это дает мне:

"TypeError: 'builtin_function_or_method' object is not iterable"

Я не уверен, почему.

Ответы [ 2 ]

12 голосов
/ 17 апреля 2009

iteritems - это метод. Вам нужно скобки, чтобы назвать это: visits.iteritems().

В нынешнем виде вы передаете сам метод iteritems sorted, поэтому он жалуется, что не может перебрать функцию или метод.

2 голосов
/ 17 апреля 2009

Лично я думаю, что одна из этих форм является более краткой, поскольку первый аргумент должен быть только итеративным, а не итератором.

sorted_keys = sorted(visits.keys(), reverse=True)
sorted_keys = visits.keys().sort(reverse=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...