2015-04-09 1 views
0

я использовал списковых не очень часто, но мне было интересно, если ниже линии может быть один вкладыш (да код уже мал, но я любопытно):ДИКТ понимание с уникальными ключи из списка

lst = ['hi', 'hello', 'bob', 'hello', 'bob', 'hello'] 
for index in lst: 
    data[index] = data.get(index,0) + 1 

данные были бы: { 'Привет': 1, 'Привет': 3, 'боб': 2}

что-то:

д = {... для индекса в LST} ??? ?

Я пробовал некоторые постижений, но они не работают:

d = { index:key for index in lst if index in d: key = key + 1 else key = 1 } 

Спасибо Adv.

+0

Спасибо за ответ НШ, но я имел в виде не используя минимальные необходимые модули Python, так что никакого дополнительного импорта! Любая другая возможность достичь этого? – FotisK

ответ

3

Просто используйте collections.Counter

счетчиком является ДИКТ подкласс для подсчета hashable объектов. Это неупорядоченная коллекция , где элементы хранятся в виде словарных ключей, а - их значения хранятся в виде значений словаря. Графам разрешено быть любое целочисленное значение, включая нулевые или отрицательные значения. Класс Counter похож на мешки или мультимножители на других языках.

import collections 
l = ['hi', 'hello', 'bob', 'hello', 'bob', 'hello'] 
c = collections.Counter(l) 
assert c['hello'] == 3