0

我对 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')
4

3 回答 3

1

您需要从中提取密钥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']
于 2021-03-07T17:09:40.217 回答
0

如果你只想要一个列表的不同元素,你可以把它转换成一个集合。

话虽如此,您还可以使用该方法访问 Counter 字典的键keys以获得类似的结果。

于 2021-03-07T16:12:23.623 回答
0

如果我们将 Counter 的输出视为一个字典,我们可以通过只获取字典的键来只获取字符串:

from collections import Counter
list1 = ['x','y','z','x','x','x','y','z']
values = Counter(list1).keys()
print(values)
于 2021-03-07T16:13:52.343 回答