Skip to content

tuple(元组)

创建元组

定义:元组是一种不可变的序列类型

元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可以修改其元素。

元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。

元组没有列表中那么多方法可以使用,因为不可变,所以安全,速度比列表快。

python
>>> # 使用 tuple() 创建元组
>>> tuple()
()

# 使用 () 创建元组
>>> ()
()

>>> type(())
tuple
>>> type(tuple())
tuple

元组取值与切片

  • 元组的取值、切片与列表时一样使用
  • 不能对元组的元素进行删除,但是可以删除整个元组:
python
>>> t = tuple("01234")
>>> t
('0', '1', '2', '3', '4')

# 直接获取
>>> t[0]
'0'
>>> t[-1]
'4'
>>> t[0:5]
('0', '1', '2', '3', '4')

# 报错 不能修改
>>> t[0] = 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

元组中只包含一个元素时,需要在元素后面添加逗号

用逗号创建只有一个元素的元组:(1,)

python
>>> (1,)
(1,)
>>> (1)
1

元组与列表的区别

  • 元组一旦定义就不允许更改。
  • 元组没有append()extend()insert()等方法,无法向元组中添加元素。
  • 元组没有remove()pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素。
  • 从效果上看,tuple( )冻结列表,而list( )融化元组。

元组的优点

  • 元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表。
  • 元组对不需要改变的数据进行 “写保护” 将使得代码 更加安全
  • 元组可用作字典的“键”,也可以作为集合的元素列表永远不能当做字典键使用,也不能作为集合的元素,因为列表不是不可变的。
  • 不可变