>>> a = (),
>>> type(a)
<class 'tuple'>
>>> len(a)
1
>>> a
((),)
>>> len(a[0]) # the inside tuple is empty, just not the outside one
0
类似地,对于长度为1但具有值的元组(对于b为零,对于c为“”)
>>> b = 0,
>>> type(b)
<class 'tuple'>
>>> len(b)
1
>>>b
(0,)
# now with an empty string
>>> c = "",
>>> type(c)
<class 'tuple'>
>>> len(c)
1
>>>c
('',)
>>> len (c[0]) # same len of c[0] as with 'empty' tuple
0
因此,外部括号用于显示元组,但实际上不是元组的一部分,也不用于创建元组。
然而,所有这些括号方法在外部并不是真正的空方法,这也是有用例的。
>>> a = ((),) # extra brackets just to show same as other answers
>>> len(a)
1
>>> if a:
print("not empty")
not empty
>>> e = tuple()
>>> len(e)
0
>>> type(e)
<class 'tuple'>
>>> if e:
print("not empty")
>>> # note...did not print...so e acts as false as an empty tuple should
空元组是
()
(或者更详细、更慢的tuple()
),只有一个项(例如整数1
)的元组是(1,)
(参见here和here)。因此,只包含空元组的元组是以下是一些结果,表明这是有效的:
tuple()是唯一真正的空元组,但是()和((),)创建的长度为1的元组包含长度为0的元组,而不是长度为0的元组本身。
如果您想知道“如何创建空(或零长度)元组…”。。。。我在这篇文章中搜索了“如何创建一个空元组”,然后意识到这不是同一个问题,但可能会被误认为是那个问题(就像搜索一样),所以我想我会提供答案:
如何简单地创建一个空元组?
原来的问题可能会误导你,因为原来的答案几乎可以作为一个空元组,但一定要通过一次测试。
(),
将创建一个“empty”元组,如前面的答案中所建议的((,))也可以,正如((((((((((((((((((,))))))一样。事实上,您可以使用任意数量的外括号,它们只是用作括号。但是,python在打印元组时确实添加了一组外括号。空括号是“no value”的非标准表示形式,添加尾随逗号将从“no value”生成元组。但它是一个具有“无值”项的元组,而不是空元组。
注意:这不是一个长度为零的元组,正如其他例子所示。外部元组是一个只有一个值的元组,这个值本身就是空元组。因此,这会在另一个元组中创建一个空元组,而另一个元组是notempty。对于一个真正的空元组本身,使用
tuple()
尽管()的行为有些相似,但并不完全正确。类似地,对于长度为1但具有值的元组(对于b为零,对于c为“”)
因此,外部括号用于显示元组,但实际上不是元组的一部分,也不用于创建元组。
然而,所有这些括号方法在外部并不是真正的空方法,这也是有用例的。
因此,如果您真的需要一个真正的空元组,请使用
tuple()
,但如果您所需要的足够接近,则可以使用(),
或((),)
我并不惊讶这个
(())
没有工作,因为外括号被解释为-括号。所以(()) == ()
,就像(2) == 2
。不过,这应该管用:相关问题 更多 >
编程相关推荐