【问题标题】:Why does Python treat a tuple with one item as an integer? [duplicate]为什么 Python 将具有一项的元组视为整数? [复制]
【发布时间】:2013-12-14 13:35:47
【问题描述】:

看下面的例子:

(1) #outputs 1

但是如果我添加逗号,根据 Python 文档它将是正确的:)

(1,) #output (1,)

这对我来说太奇怪了。谁能解释一下?

一个相关问题:Python 有没有办法知道什么时候 (1) 应该是一个元组 (1,) 而不是 1?

感谢您以后的回复。

【问题讨论】:

  • 可能是因为 Python 认为 (1) 是一个等式,比如 (1+0)
  • 1 / (2 + 0) 中应该将(2 + 0) 视为什么?,一个元组?
  • 想你,我明白了:)

标签: python tuples


【解决方案1】:

实际上,创建元组的是逗号;只有在否则会产生歧义的情况下才需要括号。毕竟,括号也可以用于分组:

>>> 1, 2
(1, 2)
>>> 1,
(1,)
>>> (1)
1
>>> 2 * 3, 4
(6, 4)
>>> 2 * (3, 4)
(3, 4, 3, 4)
>>> 1, + (2, 3) * 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for unary +: 'tuple'
>>> (1,) + (2, 3) * 4
(1, 2, 3, 2, 3, 2, 3, 2, 3)

【讨论】:

  • 很有帮助。我明白了 :) 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2019-08-06
  • 2019-12-19
相关资源
最近更新 更多