我对 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')
我对 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']
如果你只想要一个列表的不同元素,你可以把它转换成一个集合。
话虽如此,您还可以使用该方法访问 Counter 字典的键keys
以获得类似的结果。
如果我们将 Counter 的输出视为一个字典,我们可以通过只获取字典的键来只获取字符串:
from collections import Counter
list1 = ['x','y','z','x','x','x','y','z']
values = Counter(list1).keys()
print(values)