【问题标题】:Error summing values in a dictionary对字典中的值求和时出错
【发布时间】:2015-07-09 07:21:57
【问题描述】:

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

这是一个错误吗?

IPython QtConsole 3.1.0 Python 2.7.10 |连续分析公司| (默认,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

【问题讨论】:

  • 您的代码中似乎有一个名称为 sum 的整数变量。要更改该名称或使用 del sum 删除 sum 函数的浅表副本!跨度>

标签: python


【解决方案1】:

您在代码中命名了一个变量 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

【讨论】:

  • 我正在测试一些来自网络的代码 sn-ps,甚至没有意识到我破坏了我的内置插件。谢谢。
  • 别担心,这种情况经常发生。
猜你喜欢
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 2015-07-31
  • 1970-01-01
  • 2023-03-24
  • 2023-03-31
相关资源
最近更新 更多