2012-04-11 24 views
14

Tôi đã cố gắng sử dụng Counter() nhưng mỗi lần tôi làm:ImportError: không thể nhập tên Counter

from collections import Counter 

tôi nhận được một lỗi nói:

Traceback (most recent call last): 
    File "<web session>", line 1, in <module> 
ImportError: cannot import name Counter 

Tôi thực sự phải thực hiện một tập tin đó có truy cập vào nó và sau đó nhập nó từ đó hoặc một cái gì đó? Tôi là người mới bắt đầu nên chỉ có câu trả lời cơ bản nhất sẽ làm.

+3

Bạn đang sử dụng phiên bản Python nào? –

Trả lời

2

Bạn chỉ có thể cast danh sách để một set thay vì:

l = ['a','b', 'c', 'a', 'd', 'e', 's', 'd', 'e', 'c'] 
print (len(set(l)) #prints 6 
+0

cảm ơn, nó bây giờ hoạt động ngoại trừ doe một điều. khi bạn có một danh sách các chuỗi và một trong các chuỗi là một chuỗi rỗng, làm thế nào để bạn loại bỏ nó? –

+0

@KeelyAranyos your_list.remove ('') – Akavall

1

Tôi không nghĩ rằng bạn muốn sử dụng Counter từ bộ sưu tập. Counter được sử dụng khi bạn muốn làm một cái gì đó như đếm số lần xuất hiện của mỗi từ. Ví dụ:

from collections import Counter 
Counter(['dog','cat','dog']) # Should output Counter({'dog': 2, 'cat': 1}) 

Để đếm số từ riêng biệt trong một danh sách, bạn có thể thử bằng cách sử dụng sau đây:

len(set(yourList)) 

của để tránh trùng lặp với các trường hợp khác nhau:

len(set(word.lower() for word in yourList)) 

Một tập hợp chỉ được phép chứa một thể hiện của các mục mà nó chứa, không giống như một danh sách.

Bạn có thể có phiên bản trước của Python không bao gồm Số lượt truy cập trong thư viện chuẩn. Nếu đúng như vậy, bạn nên cập nhật lên phiên bản mới hơn nếu có thể.

31

Bộ đếm chỉ được hỗ trợ python2.7 trở lên và không có sẵn trong các phiên bản trước đó.

+1

Cảm ơn, bạn là người duy nhất trả lời thực sự câu hỏi, nó giúp tôi. – zurgl

+0

Cảm ơn sự đánh giá cao – sharafjaffri

+0

@sharafjaffri Bạn có lẽ nên chấp nhận câu trả lời của mình, sau đó, là câu trả lời đúng. – josiah

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