您的位置:首页 > 编程语言 > Python开发

Python内置数据类型之Tuple

2016-03-02 10:34 323 查看
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。还有就是,list使用中括号[],而tuple使用小括号(),也算是快速识别tuple的一种方法。

1、创建元组

创建一个元组很简单,只需要在括号中添加元素,元素之间使用逗号分隔即可:

t = (0,1,2,3,4,5,6,7,8,9)
同list,元组中的元素也可以是不同类型的数据:

t=(1,"Hello",False)
当然还可以创建空元组:

t=()
需要注意的是,由于在python中小括号()也是运算符,所以创建只含有一个元素的元组时要这样:

t=(1,)
在元素后面添加一个逗号,就可以区分是否是元组了。

2、访问元组

元组的访问和list相同,访问list元素的方法都可以访问元组,不同之处由于元组不能修改,所以元组没有append、insert和pop等方法:

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );

print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
结果:

tup1[0]:  physics
tup2[1:5]:  (2, 3, 4, 5)
3、修改元组

元组中的元素不能修改,不过我们可以连接两个元组:

tup1=(1,2)
tup2=("Hello","World")
tup3=tup1+tup2
print tup3
结果:
(1,2,"Hello","World")
4、删除元组

虽然元组中的元素不能修改,我们可以使用del语句删除整个元组:

del tup3
5、"可变"的元组

前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple:

t = ('a', 'b', ['A', 'B'])

注意到 t 有 3 个元素:'a','b'和一个list:['A', 'B']。list作为一个整体是tuple的第3个元素。list对象可以通过 t[2] 拿到:

L = t[2]
然后,我们可以把list中的两个元素改一改:

L[0]='X'
L[1]='Y'
再看看t的内容:

print t

('a', 'b', ['X', 'Y'])

第三个元素的内容变了。

先看看刚定义时t的内容:



当我们把list的元素'A'和'B'修改为'X'和'Y'后,t变为:



表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。

tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

6、元组运算符

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



7、元素的索引与截取

这些操作元组和list相同。

8、Python内置函数

其中max、min、cmp、len等函数的使用和list相同,元组还有一个tuple函数,用来将序列转换为元组:

tuple(seq)
9、其他

任意无符号的对象,以逗号隔开,默认为元组,如下实例:

t=1,2,3
print t #(1,2,3)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: