2009-04-17 172 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