我不常使用列表推导但我想知道下面的行是否可以是一行(是的,代码已经很小了,但我很好奇):
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 }
先谢谢。
答案 0 :(得分:3)
Counter是用于计算可哈希对象的dict子类。它是一个 无序集合,其中元素存储为字典键和 他们的计数存储为字典值。计数是允许的 任何整数值,包括零或负数。柜台班 类似于其他语言的包或多重集。
import collections
l = ['hi', 'hello', 'bob', 'hello', 'bob', 'hello']
c = collections.Counter(l)
assert c['hello'] == 3