Python字典get方法在赋值中的应用
大家好,
我正在遍历一个字典,并计算里面每个值出现的次数。为此,我在给另一个字典赋值时使用了 get 方法。但是,这样做时出现了一个语法错误,提示“不能给函数调用赋值”。
counts = {}
mydict = {'a':[1,2,5], 'b': [1,2,10]}
for key,value in mydict.iteritems():
counts(value[1]) = counts.get(value[1], 0) + 1
为什么赋值的时候会试图指向这个函数,而不是它返回的值呢?
4 个回答
0
把这个:
counts(value[1])
改成这个:
counts[value[1]]
代码看起来像这样:
counts = {}
mydict = {'a':[1,2,5], 'b': [1,2,10]}
for key, value in mydict.iteritems():
counts[value[1]] = counts.get(value[1], 0) + 1
1
你应该用 counts[value[1]] = ...
代替 counts(value[1]) = ...
。
2
counts = {}
mydict = {'a':[1,2,5], 'b': [1,2,10]}
for key,value in mydict.iteritems():
counts[value[1]] = counts.get(value[1], 0) + 1
你需要用方括号,而不是圆括号,来从字典中获取一个项目。
另外,你这样做有点复杂。
from collections import defaultdict
# automatically start each count at zero
counts = defaultdict(int)
# we only need the values, not the keys
for value in mydict.itervalues():
# add one to the count for this item
counts[value[1]] += 1
或者
# only on Python 2.7 or newer
from collections import Counter
counts = Counter(value[1] for value in mydict.itervalues())