将字典中的值相加时出错

时间:2015-07-08 23:17:24

标签: python

尝试对字典中的值求和时出现以下错误。我期望获得总和(即15),但会引发错误。

这是一个错误吗?

IPython QtConsole 3.1.0 Python 2.7.10 | Continuum Analytics,Inc。| (默认,2015年5月28日,17:04:42)

d = {'1': 1, '2': 2 , '3': 3, '4': 4, '5': 5}

>>> sum(d.values())
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-36-4babd535f17a> in <module>()
----> 1 sum(d.values())

TypeError: 'int' object is not callable

1 个答案:

答案 0 :(得分:5)

您在代码中为变量sum命名了一个指向int的变量,因此您实际上试图调用的不是sum函数。只需添加del sum,然后再次尝试代码。 一个很好的例子,说明为什么你不应该隐藏内置函数名。

In [24]: sum = 4    
In [25]: sum((1,2))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-a2ca1bd9c959> in <module>()
----> 1 sum((1,2))

TypeError: 'int' object is not callable  
In [26]: del sum
In [27]: sum((1,2))
Out[27]: 3