码迷,mamicode.com
首页 > 编程语言 > 详细

python 数据结构 - 元祖

时间:2017-03-18 13:09:03      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:rac   define   插入   [1]   运算   ref   index   表达   特性   

Python 的元组与列表类似,不同之处在于元组的元素不能修改(元素的元素是可以修改的)。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

创建元祖方式:

1 >>> t = (1,2.0,a,sd,[3,4],)
2 >>> t1 = 1,2.0,a,sd,[3,4],
3 >>> t
4 (1, 2.0, a, sd, [3, 4])
5 >>> t1
6 (1, 2.0, a, sd, [3, 4])
7 >>> 

还有用tuple()创建,如创建一个空元祖:  t = tuple()

注:当元祖里面只有一个元素时,在元素后面要加上 ‘,‘ , eg: t = (‘tuple‘,)

 

由于元祖的元素不可改变的特性,导致元祖没有类似列表那种能直接对元祖自身更改的方法。所以元祖常用方法如下:

1 t.count(x)
2 ‘‘‘元素x在元祖里面出现的次数,不存在则返回0次‘‘‘
3 t.index(x)
4 ‘‘‘元素x在元祖中的索引,不存在就返回错误‘‘‘

还有python内置函数:

1 max(t)
2     ‘‘‘返回元祖t中最大值‘‘‘
3 min(t)
4     ‘‘‘返回元祖t的最小值‘‘‘
5 len(t)
6     ‘‘‘返回元祖t的长度(元素个数)‘‘‘
7 tuple(seq)
8     ‘‘‘把一个序列seq转换为元祖‘‘‘

 

因为元祖有序,支持索引,所以元祖可以进行切片,指定索引取值。利用分片也可以进行插入,但是插入后是重新开辟内存,与原来的元祖是不同的。

1 >>> t = (a,b,c,d,e,)
2 >>> t[1:4]
3 (b, c, d)
4 >>> t1 = t[0:2] + (hello,) + t[2:]
5 >>> t1
6 (a, b, hello, c, d, e)
7 >>> t
8 (a, b, c, d, e)
9 >>>

 

虽然元祖元素是不能改变的,但是元素的元素是可以改变的。

 1 >>> m = (1,2.0,a,sd,[3,4],)
 2 >>> m[3]
 3 sd
 4 >>> m[3] = am
 5 Traceback (most recent call last):
 6   File "<pyshell#24>", line 1, in <module>
 7     m[3] = am
 8 TypeError: tuple object does not support item assignment
 9 >>> m[4]
10 [3, 4]
11 >>> m[4][1] = aaa
12 >>> m
13 (1, 2.0, a, sd, [3, aaa])
14 >>> 

 

删除元祖:

元祖中的元素是不能更改的,所以这里的 del 删除是删除整个元祖:

 1 >>> m = (1, 2.0, a, sd, [3, aaa])
 2 >>> m
 3 (1, 2.0, a, sd, [3, aaa])
 4 >>> del m
 5 >>> m
 6 Traceback (most recent call last):
 7   File "<pyshell#32>", line 1, in <module>
 8     m
 9 NameError: name m is not defined
10 >>> 

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式结果描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
(‘Hi!‘,) * 4 (‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘) 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

 

python 数据结构 - 元祖

标签:rac   define   插入   [1]   运算   ref   index   表达   特性   

原文地址:http://www.cnblogs.com/xtsec/p/6573013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!