【问题标题】:Phantom Type Error (Python 3.3)幻像类型错误(Python 3.3)
【发布时间】:2013-12-10 07:12:41
【问题描述】:

我尝试使用作为浮点数列表的 dataList 运行此代码:

meanData = round(float((sum(dataList) / len(dataList))), 2)

它给了我一个 TypeError: unsupported operand type(s) for +: 'int' and 'str',即使我什至没有使用 + 运算符。可能是什么问题?

【问题讨论】:

  • "即使我什至没有使用 + 运算符。"你不知道,但你认为sum() 做了什么?

标签: python typeerror


【解决方案1】:

dataList 必须包含一个或多个字符串。此外,sum 不支持字符串。

请看下面的演示:

>>> lst = [1, 2, 3, '4']
>>> sum(lst)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>

要解决此问题,您需要使dataList 仅包含整数或浮点数。

【讨论】:

  • 我知道发生了什么。我有一个遍历列表中每个成员的 for 循环,但我忘记了 float() 不起作用。这似乎总是让我绊倒。
【解决方案2】:

dataList 包含数字和字符串。修复它。

【讨论】:

  • dataList 不需要包含数字来生成此消息,我不认为,因为默认起始值​​为 0。
  • @DSM:即使您通过使用自定义 start(如 sum(dataList, ''))来解决此问题,您也只会得到 TypeError: sum() can't sum strings [use ''.join(seq) instead]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 2013-03-27
  • 1970-01-01
  • 2014-12-23
  • 2016-07-02
  • 2013-09-30
  • 2015-06-25
相关资源
最近更新 更多