全部,Python字典获取方法
我在字典上循环并计算出现的值。为此,我使用另一个字典的赋值语句中的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
为什么分配会尝试指向函数而不是返回值?
全部,Python字典获取方法
我在字典上循环并计算出现的值。为此,我使用另一个字典的赋值语句中的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
为什么分配会尝试指向函数而不是返回值?
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())
而不是counts(value[1]) = ...
你想要counts[value[1]] = ...
。
更改此:
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
counts[value[1]] = counts.get(value[1], 0) + 1
应该
counts[value[1]] = counts.get(value[1], 0) + 1
Python的需要块缩进。你的'for'主体没有缩进。 – cdhowie
Python需要缩进?我永远不会知道!这显然只是一个错字。 – agf
我是个白痴,我必须在工作当天停止切换语言。另外,感谢您指出defaultdict位,我没有意识到这一点。 –