是元组的元素,它们本身是元组吗?

时间:2016-12-07 14:30:34

标签: python

我对元组符号感到有些困惑。元组中的每个元素都被视为元组或元素的任何类型吗?

例如,对于元组t = (1,2,3,4)1 in tTrue,这意味着int 1位于元组t中。

但是,如果我评估t[0:1],我们会得到元组 (1,)

更令人困惑的是(1,) in tFalse

这里发生了什么?这是什么;是t元组或整数的元素吗?

2 个答案:

答案 0 :(得分:6)

不,他们不是。

但切片[0:1]将始终为您提供迭代的子集。如果您只想获取元素,请执行以下操作:t[0]。这是一个整数,而不是元组。

答案 1 :(得分:0)

元组内的项可以是元组或其他数据类型。您甚至可以混合元组中包含的项目类型。

当您使用t[0:1]进行切片时,这会为您提供正在切片的对象的一部分。 read the docs

另一方面,您可以通过使用t[0]建立索引来访问元组内的项目。 more docs

您可以检查对象类型:

t = (1,2,3,4) 
type(t)
Out[12]: tuple

type(t[1])
Out[13]: int


type(t[:1])
Out[14]: tuple


t2 = ('a',1, (0,1)) 

for item in t2:
    print(type(item))

<class 'str'>
<class 'int'>
<class 'tuple'>