2009-04-17 178 views
8

我有这段代码:Python的排序Collections.DefaultDict降序排列

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"

我不知道为什么。

回答

12

iteritems是一种方法。你需要括号来称呼它:visits.iteritems()

现在,您正在将iteritems方法本身传递给sorted,这就是为什么它抱怨它无法遍历函数或方法。

2

就我个人而言,我认为其中一种形式更简洁一点,因为第一个参数只需要是一个迭代器而不是迭代器。

sorted_keys = sorted(visits.keys(), reverse=True) 
sorted_keys = visits.keys().sort(reverse=True) 
+0

他想按价值排序,而不是按键 – miles82 2009-04-17 07:22:45