2016-06-18 602 views
16

如何创建一个只包含空元组的元组,即(())?我试过tuple(tuple()),tuple(tuple(tuple())),tuple([])tuple(tuple([]))这都给我()如何在Python中创建一个空元组的元组?

我使用这种东西的原因如下:假设你有n袋子m项目。为了表示袋子中的物品列表,我使用长度为ntuple,其中该元组的每个元素是袋子的代表。袋子可能是空的,标有()。现在,在某个初始阶段,我只有一个空物品的包!

+4

空元组文字是'()',而不是'(,)' – vaultah

+0

@vaultah纠正。 :) –

+0

“现在,在某个初始阶段,我只有一个空物品的包!”请注意,元组是不可变的,所以一个空元组基本上是无用的,因为您以后不能添加项目。如果你想,你应该考虑使用一个列表来代替。 – DeepSpace

回答

27

空元组是(),和只用一个项目的元组(如整数1),称为单(参见herehere)是(1,)。因此,只包含空的元组的元组是

((),) 

这里有一些结果显示,工作原理:

>>> a=((),) 
>>> type(a) 
<type 'tuple'> 
>>> len(a) 
1 
>>> a[0] 
() 
>>> type(a[0]) 
<type 'tuple'> 
>>> len(a[0]) 
0 
3

我并不惊讶这个(())没有工作,由于外括号得到解释就像 - 括号一样。所以(()) ==(),就像(2) == 2。这应该工作,但是:

((),)