Skip to main content
 首页 » 编程设计

python之为什么长度为 1 的元组的元组实际上不是元组,除非我添加逗号

2025年05月04日9hnrainll

给定元组的元组T:

(('a', 'b')) 

和一个单独的元组t1:

('a','b') 

为什么:

t1 in T 

返回错误?

更新:来自 Ipython:

In [22]: T = (('a','b')) 
 
In [23]: t1 = ('a','b') 
 
In [24]: t1 in T 
Out[24]: False 

然后如何检查一个元组是否在另一个元组中?

请您参考如下方法:

问题是因为 T 不是元组的元组,它只是一个元组。逗号构成一个元组,而不是括号。应该是:

>>> T = (('a','b'),) 
>>> t1 = ('a', 'b') 
>>> t1 in T 
True 

事实上,您可以去掉外括号:

>>> T = ('a','b'), 
>>> t1 = 'a','b' 
>>> type(T) 
<type 'tuple'> 
>>> type(T[0]) 
<type 'tuple'> 
>>> type(t1) 
<type 'tuple'> 
>>> t1 in T 
True 

尽管有时需要优先考虑它们,但如果有疑问,请将它们放入。但请记住,是逗号使它成为元组。