元组的概念
元组(tuple)可以理解为一种特殊的列表。他与列表的区别有:
- 元组用()而非 [] 来表示;
- 元组只可读, 不可写;
- 构成元组的核心要素是 ' , ' 而非 ' () '.
元组的创建
创建元组有两种方式:
- tuple1 = (1,2,3,4,'周星驰')
或者
- tuple2 = 1,2,3,4,'周星驰'
第 2 种方式也就说明了构成元组的核心要素是 ' , ' 而非 ' () '. 当我们想要创建只有一个元素的元组的时候.
>>> tuple = (520)
>>> type(tuple)
<class 'int'>
>>> tuple = 520,
>>> type(tuple)
<class 'tuple'>
访问元组
访问元组与访问列表的方式相同, 都分为两类:
- 以索引值访问:
>>> tuple = (1,2,3,4,5,'裴擒虎')
>>> tuple[5]
'裴擒虎'
>>> tuple[2:]
(3, 4, 5, '裴擒虎')
>>>
需要注意的是, 表示元组索引的跟列表一样, 都是中括号, 而不是小括号.
更新元组
元组只能访问, 不能修改. 如果非要修改, 可以通过重新建立新元组的方式来修改.
>>> tuple
(1, 2, 3, 4, 5, '裴擒虎')
>>> tuple = (tuple[:5] + ('兰陵王',))
>>> tuple
(1, 2, 3, 4, 5, '兰陵王')
>>>
需要注意的是, 使用这种方式修改, 本质是将变量tuple重新指向了一个新建立的元组. 通过与修改列表来对比, 可以看到:
>>> tuple = (1, 2, 3, 4, 5, '裴擒虎')
>>> id(tuple)
1721686717632
>>> tuple = (tuple[:5] + ('兰陵王',))
>>> tuple
(1, 2, 3, 4, 5, '兰陵王')
>>> id(tuple)
1721687189152
>>>
可以看到, 修改前后, 变量tuple的id变了, 也就是说修改前的tuple和修改后的 tuple是两个完全不同的变量.
如果在列表中操作, 情况则完全不同.
>>> list = [1,2,3,4,5,'程咬金']
>>> id(list)
1721687475968
>>> list[5] = '苏烈'
>>> list
[1, 2, 3, 4, 5, '苏烈']
>>> id(list)
1721687475968
>>>
可以看到, 修改前后, 变量list的id没有变化.
删除元组
如果是删除元组中的元素, 操作方式与修改相同. 但要记得, 修改 / 删除前后, 这是两个不同的变量.
而删除整个元组,可以使用del语句.
>>> tuple
(1, 2, 3, 4, 5, '兰陵王')
>>> del tuple
>>> tuple
<class 'tuple'>