dict comprehension与唯一键列表

时间:2015-04-09 13:05:05

标签: python dictionary-comprehension

我不常使用列表推导但我想知道下面的行是否可以是一行(是的,代码已经很小了,但我很好奇):

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

数据将是:{'hi':1,'hello':3,'bob':2}

东西:

d = {...对于lst中的索引} ????

我尝试了一些理解,但它们不起作用:

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

先谢谢。

1 个答案:

答案 0 :(得分:3)

只需使用collections.Counter

即可
  

Counter是用于计算可哈希对象的dict子类。它是一个   无序集合,其中元素存储为字典键和   他们的计数存储为字典值。计数是允许的   任何整数值,包括零或负数。柜台班   类似于其他语言的包或多重集。

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