1、元组
元组是不可修改的序列,用小括号()括起来。
1.1、创建元组
1.1.1、使用()创建元组
>>> tp = ()
>>> tp
()
>>>
>>> type(tp)
<class 'tuple'>
>>> tp4 = (1,2,3)
>>> tp4
(1, 2, 3)
>>> type(tp4)
<class 'tuple'>
>
>>>
1.1.2、使用(元素值,)创建一个元素的元组
>>> tp = (1,)
>>>
>>> tp
(1,)
>>>
>>> type(tp)
<class 'tuple'>
>>>
1.1.3、使用内置函数tuple创建元组
函数tuple将可迭代对象转换为元组。
>>> tp = tuple()
>>> tp
()
>>>
>>> type(tp)
<class 'tuple'>
>>> tp1 = tuple([1,2,3])
>>> tp1
(1, 2, 3)
>>>
>>> tp2 = tuple('abc')
>>> tp2
('a', 'b', 'c')
>>>
>>> tp3 = tuple(range(5))
>>> tp3
(0, 1, 2, 3, 4)
>>>
1.2、元组操作
1.2.1、序列的通用操作
元素是序列类数据结构,所以序列的通用操作(索引,切片、相加、乘法、成员资格检查)都可以使用。
>>> tp3
(0, 1, 2, 3, 4)
>>>
>>> tp3[1]
1
>>> tp3[1:4]
(1, 2, 3)
>>>
>>> tp3 + (5,6,'abc')
(0, 1, 2, 3, 4, 5, 6, 'abc')
>>>
>>> tp3 * 3
(0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4)
>>>
>>> 3 in tp3
True
>>> 4 in tp3
True
>>>
>>> tp3
(0, 1, 2, 3, 4)
>>>
>>> 5 in tp3
False
>>>
1.2.2、元组方法
因为元组不可修改,所以元组方法较少,只有count、index两个方法。
1.2.2.1、count
统计指定值在元组中出现的次数。
>>> tp
('a', 'b', 'c', 'd', 'e', 'f', 'd', 'b', 'e', 'l')
>>>
>>> tp.count('a')
1
>>>
>>> tp.count('b')
2
>>>
1.2.2.2、index
查询指定值在元组中第一次出现的索引位置。
>>> tp
('a', 'b', 'c', 'd', 'e', 'f', 'd', 'b', 'e', 'l')
>>>
>>> tp.index('b')
1
2、比较元组与列表
2.1、元组与列表的区别
1、 列表是动态的,可修改。
- 长度大小不固定。
- 可随意增加、删除、更改元素。
- 列表的存储空间略大于元组,性能稍逊与元组。
2、 元组是静态的,不可修改。
- 长度大小固定。
- 无法增加、删除或修改元素。
- 元组相对于列表更轻量化,性能稍由于列表。
2.2、元组与列表的相同点
- 都可以放置任意类型的有序集合。
- 都支持索引、切片、相加、乘法、成员资格检查等序列通用操作。
- 都可以随意嵌套。
- 可以通过内置函数list、tuple相互转换。
- 都有方法count、index。
- 都支持内置函数 sorted、reverse。
3、元组和列表的使用场景
- 如果存储的数据或数量是不变的,则元组比较合适。比如:函数需要返回一个点的经纬度。
- 如果存储的数据或数量是可变的,则列表更合适。比如:社交平台上的一个日志功能,是统计一个用户在一周之内看了哪些用户的帖子。
- 元组可以作为映射类数据结构的键值,而列表可以。