我将列表转换为计数器。当我尝试返回我的值时会出现问题。我试过counter.values()
了,但我收到的是我的原始列表而不是项目计数。有什么建议么?
a=[1,1,2,1,2,3,4,5,66,44,3]
c=Counter(a)
print(c.values())
输出:[1,1,2,1,2,3,4,5,66,44,3]
我将列表转换为计数器。当我尝试返回我的值时会出现问题。我试过counter.values()
了,但我收到的是我的原始列表而不是项目计数。有什么建议么?
a=[1,1,2,1,2,3,4,5,66,44,3]
c=Counter(a)
print(c.values())
输出:[1,1,2,1,2,3,4,5,66,44,3]
keys()
返回原始列表中的项目。values()
返回相关的计数。items()
返回键值(键计数)对。
我同意 OP 的观点,即 c.values() 应该返回计数而不是项目本身。我相信这是预期的行为。其他任何东西都可能是一个错误。检查 Python bugdb 或尝试更新版本的 Python。
>>> from collections import Counter
>>> a=[1,1,2,1,2,3,4,5,66,44,3]
>>> c=Counter(a)
>>>
>>> c.keys() # elements of the original list taken once
dict_keys([1, 66, 3, 4, 5, 44, 2])
>>>
>>> c.values() # occurrences of each element
dict_values([3, 1, 2, 1, 1, 1, 2])
>>>
>>> c.items() # list of tuples (element, occurrence)
dict_items([(1, 3), (66, 1), (3, 2), (4, 1), (5, 1), (44, 1), (2, 2)])
>>>
>>> c[66] # occurrences of element 66
1