2015-08-04 2 views
2

Я хочу создать словарь, содержащий {x,list.count[x]}. Тем не менее, я продолжаю нарваться ошибки при попытке выполнить свой код:Словарь элементов counts

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

pear = {} 

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

Ошибка cannot convert dictionary update sequence element#0 to a sequence. Любые предложения?

ответ

1
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} 
+0

поздравления с приемом, +1. –

+0

@AaronHall Спасибо большое Аарон. –

4

Могу ли я предложить collections.Counter:

>>> 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} 
+1

Я ценю помощь! –

+0

@man_ostrich вы очень желанны, и добро пожаловать в StackOverflow, вы можете принять ответ, который помог вам, установив галочку рядом с ним, и он добавит плюс 2 к вашему репутации. Ура! –

5

У вас есть ошибка синтаксиса в вашем словаре определение. Попробуйте

pear.update({x : apple.count(x)}) 
Смежные вопросы