2009-04-17 40 views
8

Tôi có chút mã này:Python Sắp xếp Collections.DefaultDict trong giảm dần Thứ

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

Tôi nhìn một số ví dụ trực tuyến mà sử dụng phương pháp sắp xếp như sau:

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

nhưng nó đang cho tôi:

"TypeError: 'builtin_function_or_method' object is not iterable"

Tôi không chắc tại sao.

Trả lời

12

iteritems là một phương pháp. Bạn cần dấu ngoặc đơn để gọi nó: visits.iteritems().

Hiện tại, bạn đang chuyển chính phương thức iteritems đến sorted đó là lý do tại sao nó phàn nàn rằng nó không thể lặp qua một hàm hoặc phương thức.

2

Cá nhân tôi nghĩ một trong các biểu mẫu này ngắn gọn hơn một chút vì đối số đầu tiên chỉ cần là một biến lặp không phải là một trình lặp.

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

Anh ấy muốn sắp xếp theo giá trị, chứ không phải trên khóa – miles82

+0

Bạn đúng, tôi đã đọc sai câu hỏi. – mattkemp

Các vấn đề liên quan