2017-09-26 59 views
-3

指望如何增加计数以列表defaultdict增量defaultdict名单

import collections 
dict = collections.defaultdict(list) 

dict["i"][0]+=1抛出类型错误。

我期待的字典要像

{"i":[1,]} 

任何有效的方法,这不是使用任何循环语句?

+0

添加您尝试过的代码片段 –

回答

0
import collections 

s = collections.defaultdict(lambda: [0]) 

s['i'][0] += 1 
0

您需要来检索字典的项目,然后追加到它

d = collections.defaultdict(list) 
d['i'].append(1) 

>>> d 
defaultdict(<type 'list'>, {'i': [1]}) 

也不要使用字典作为一个变量名,它被用来构造类型的字典。

>>> type(dict) 
<type 'type'> 
0

您可以使用计数器从收藏

from collections import Counter 
c = Counter() 
sample_list = ['a','b','c','a','b','d','e','b'] 
for l in sample_list: 
    c[l] += 1 

现在变量Ç将给予以下,

>>>Counter({'a': 2, 'b': 3, 'c': 1, 'd': 1, 'e': 1}) 

你可以得到每个元素的数量如下:

c['a'] 
>>>2