Python 元素计数字典

Python 元素计数字典,python,dictionary,Python,Dictionary,我想创建一个包含{x,list.count[x]}的字典。但是,在尝试执行代码时,我一直遇到错误: apple = ['variant', 'variant', 'variant2.0', 'variant 3.0'] pear = {} for x in apple: pear.update({x,apple.count(x)}) 错误是无法将字典更新序列元素#0转换为序列。有什么建议吗?我可以建议一个集合。计数器: >>> from collections i

我想创建一个包含
{x,list.count[x]}
的字典。但是,在尝试执行代码时,我一直遇到错误:

apple = ['variant', 'variant', 'variant2.0', 'variant 3.0']

pear = {}

for x in apple:
    pear.update({x,apple.count(x)})

错误是
无法将字典更新序列元素#0转换为序列。
有什么建议吗?

我可以建议一个
集合。计数器

>>> from collections import Counter
>>>
>>> apple = ['variant', 'variant', 'variant2.0', 'variant 3.0']
>>> Counter(apple)
Counter({'variant': 2, 'variant 3.0': 1, 'variant2.0': 1})
如果您需要一份简单的口述:

>>> dict(Counter(apple))
{'variant 3.0': 1, 'variant': 2, 'variant2.0': 1}

词典定义中有语法错误。 试一试

输出:

{'variant 3.0': 1, 'variant': 2, 'variant2.0': 1}

我感谢你的帮助@man_ostrich非常欢迎您,欢迎来到StackOverflow,您可以通过勾选旁边的复选标记来接受对您帮助最大的答案,它将为您的代表增加2。干杯@阿伦霍尔非常感谢亚伦。
apple = ['variant', 'variant', 'variant2.0', 'variant 3.0']
pear = {}
for x in apple:
    pear[x] = pear.get(x, 0) +1
print (pear)
{'variant 3.0': 1, 'variant': 2, 'variant2.0': 1}