我对python的Counter库没有什么问题。下面是一个例子:
from collections import Counter
list1 = ['x','y','z','x','x','x','y', 'z']
print(Counter(list1))
它的输出:
Counter({'x': 4, 'y': 2, 'z': 2})
我的问题是如何在没有重复次数的情况下接收输出?
我想要得到的是:
Counter('x', 'y', 'z')
您需要从most_common()
中提取密钥:
from collections import Counter
list1 = ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']
print(Counter(list1).most_common()) # ordered key/value pairs
print(Counter(list1).keys()) # keys not ordered!
keys = [k for k, value in Counter(list1).most_common()]
print(keys) # keys in sorted order!
:
[('x', 4), ('y', 2), ('z', 2)]
['y', 'x', 'z']
['x', 'y', 'z']
如果你只想要列表的不同元素,你可以把它转换成一个集合。
话虽如此,您也可以使用keys
方法访问Counter字典的键,以获得类似的结果。
如果将Counter的输出视为字典,则可以通过获取字典的键来获取字符串:
from collections import Counter
list1 = ['x','y','z','x','x','x','y','z']
values = Counter(list1).keys()
print(values)