元组
创建元组
- 元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可以修改其元素。
- 元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。
- 元组没有列表中那么多方法可以使用,因为不可变,所以安全,速度比列表快。
# 使用 tuple() 创建元组
>>>tuple()
()
# 使用 () 创建元组
>>> ()
()
>>> type(())
tuple
>>> type(tuple())
tuple
元组中只包含一个元素时,需要在元素后面添加逗号
info_tuple = (50, )
元组取值与切片
元组的取值、切片与列表时一样使用
不能对元组的元素进行删除,但是可以删除整个元组:
In [1]: t = tuple("01234")
In [2]: t
Out[2]: ('0', '1', '2', '3', '4')
# 直接获取
In [3]: t[0]
Out[3]: '0'
In [4]: t[-1]
Out[4]: '4'
# 不能修改
In [5]: t[0] = 1
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-c8aeb8cd20ae> in <module>
----> 1 t[0] = 1
TypeError: 'tuple' object does not support item assignment
In [6]: t[0:5]
Out[6]: ('0', '1', '2', '3', '4')
元组常用操作
- 在
ipython
中定义一个 元组,例如:info = ()
- 输入
info.
按下TAB
键,ipython
会提示 元组 能够使用的函数如下:
info.count info.index
循环遍历
- 取值 就是从 元组 中获取存储在指定位置的数据
- 遍历 就是 从头到尾 依次 从 元组 中获取数据
# for 循环内部使用的变量 in 元组
for item in info:
# 循环内部针对元组元素进行操作
print(item)
- 在
Python
中,可以使用for
循环遍历所有非数字型类型的变量:列表、元组、字典 以及 字符串
元组和列表之间的转换
- 使用
list
函数可以把元组转换成列表
list(元组)
- 使用
tuple
函数可以把列表转换成元组
tuple(列表)
元组解包
序列类型
In [7]: a, b, c = tuple('abc')
In [8]: a
Out[8]: 'a'
In [9]: b
Out[9]: 'b'
In [10]: c
Out[10]: 'c'
# 用 _ 收集不用的元组
In [15]: _, _, c = tuple('abc')
In [16]: c
Out[16]: 'c'
_
是被舍弃的变量
元组与列表的区别
- 元组一旦定义就不允许更改。
- 元组没有
append()
、extend()
和insert()
等方法,无法向元组中添加元素。 - 元组没有
remove()
或pop()
方法,也无法对元组元素进行del
操作,不能从元组中删除元素。 - 从效果上看,
tuple( )
冻结列表,而list( )
融化元组。
元组的优点
- 元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表。
- 元组对不需要改变的数据进行 “写保护” 将使得代码更加安全。
- 元组可用作字典的“键”,也可以作为集合的元素。列表永远不能当做字典键使用,也不能作为集合的元素,因为列表不是不可变的。
元组的缺点
不可修改