说完了可变序列list,今天我们来说下不可变序列tuple,它有一下特性:
(1)可以包含任意对象的有序集合(集合后面会单独说)
(2)可以通过下标索引来访问元素
(3)固定长度,异质,可任意嵌套
(4)对象引用数组
(5)不支持原位改变
声明一个空的元素:x=(),使用大括号来表示元组,使用方括号来表示列表(后面会介绍使用花括号来表示字典)
先前列表的通用方法基本都适合元组。
1:in/not in
2:A*2------>重复序列或元组的内容,A代表序列
3:A1+A2------>连接两个序列
4:A[x]------>A代表序列或元组,x代表列表或元组下标
5:A[x:y]------>访问指定索引范围,A代表列表或元组,x和y代表下标,含头不含尾
6:len(A)------>获取序列或元组的长度,A代表序列或元组
7:A[x:y:z]------>按步长访问指定索引范围,z代表步长
8:min(A)/max(A)------>获取序列或元组的最大元素和最小元素,A代表序列或元组
9:sum(A)------>统计序列或元组总和
10:A.index(a)------>获取序列或元组某个元素第一次出现的下标位置,A代表序列或元组,a代表A里面某个元素
11:A.count(a)------>查看序列或元组中某个元素出现的次数,A代表序列或元组,a代表某个元素
因为元组有这个不支持原位改变的特性,所以不支持del,remove,append,extend的操作
但是元组还有一个方法:
>>> a=[1,2,3]
>>> b=tuple(a)
>>> b
(1, 2, 3)
>>> type(a)
<class 'list'>
>>> type(b)
<class 'tuple'>
>>> a
[1, 2, 3]
>>> c=list(b)
>>> c
[1, 2, 3]
>>> b
(1, 2, 3)
从上面可以得知:序列a可以转换成元组,同时a还是list型,b就是tuple型了,
元组b可以转换成序列,b是tuple型,c就是list型了。