首页 > 代码库 > python数据结构-序列之元组
python数据结构-序列之元组
python中包含六种内建的序列:列表;元组;字符串;unicode字符串;buffer对象;xrange对象。
一、元组:不可变序列
元组与列表一样,也是一种序列。唯一不同是元组不能修改(元组和列表在技术实现上有一些不同,但是在实际使用时,可能不会注意到。且元组没有像列表一样的方法)。
1、创建元组:用逗号(,)分开,元组(大部分时候)是通过圆括号括起来的
>>> 1,2,3 //直接在python编辑器输入
(1, 2, 3)
>>>
>>> (1,2,3) //用括号括起来定义元组
(1, 2, 3)
>>> () //空元组
()
>>>
>>> 3
3
>>> (3,) //定义一个元素的元组(注意:必须有逗号)
(3,)
>>>
>>> 3*(3)
9
>>> 3*(3,)
(3, 3, 3)
>>>
2、元组函数:
a)、tuple
tuple函数的功能与list函数基本上一样:以一个序列作为参数并转为元组,如果参数就是元组,则原样返回。
如:
>>> a=(1,2,3)
>>> b=[1,2,3]
>>> tuple(a)
(1, 2, 3)
>>> tuple(b)
(1, 2, 3)
>>> b
[1, 2, 3]
>>>
>>> tuple([‘a‘,‘b‘,‘c‘])
(‘a‘, ‘b‘, ‘c‘)
>>>
3、基本元组操作:
元组除了创建与访问外,基本没有其他操作,参照通用序列操作(索引、分片、加、乘、迭代、成员资格等)
如:
>>> a=(1,2,3,4,5,6,1,3,4,2)
>>> a[2] //索引
3
>>> a[2:5] //分片 (元组的分片还是元组,正如列表的分片还是列表一样)
(3, 4, 5)
>>> a[2::2] //分片和步长
(3, 5, 1, 4)
>>> b=(11,12)
>>> a+b //元组相加
(1, 2, 3, 4, 5, 6, 1, 3, 4, 2, 11, 12)
>>> 2 in a+b //成员判断
True
>>> 4*b //乘运算
(11, 12, 11, 12, 11, 12, 11, 12)
>>>
4、元组存在的意义:
列表一般可以替代元组,但是在以下两个方面来说,元组是不能替代的:
a)、元组可以在映射(和集合的成员)中当作键使用,而列表不行
b)、元组作为很多内建函数和方法的返回值存在,也就是说必须对元组进行处理。只要不尝试修改元组,那么“处理”元组在绝大多数情况下就是把他们当作列表来进行操作(除非需要使用一些元组没有的方法,如sort和pop)
python数据结构-序列之元组