Python—元组(戴上了枷锁的列表)

一.概念

元组属于不可变序列,元组是包含多个元素的类型,元素之间用逗号分割。
例如:t1=123,456,“hello”
元组可以是空的,t2=()
元组包含一个元素时:t3=123,
元组外侧可以使用括号,也可以不使用
可以使用tuple函数将其他序列转换为元组
使用del删除元组对象,不能删除元组元素

二.特点

1.元组中元素可以是不同类型;
一个元组也可以作为另一个元组的元素,此时,作为元素的元组需要增加括号,从而避免歧义。
例如:

2.元组中各元素存在先后关系,可以通过索引访问元组中元素。
例如:t[0]
3.元组定义后其中元素不能更改,也不能删除。
例如:t[0]=3

4.与字符串类型类似,可以通过索引区间来访问元组中部分元素
例如:t[1:]
与字符串一样,元组之间可以使用+号和*号进行运算。

5.列表和元组都属于有序序列,都支持使用双向索引访问其中的元素,以及使用count()方法统计指定元素的出现次数和index()方法获取指定元素的索引,len()、map()、filter()等大量内置函数和+、+=、in等运算符也都5.可以作用于列表和元组。

元组属于不可变(immutable)序列,不可以直接修改元组中元素的值,也无法为元组增加或删除元素。

元组没有提供append()、extend()和insert()等方法,无法向元组中添加元素;

元组也没有remove()和pop()方法,也不支持对元组元素进行del操作,不能从元组中删除元素,而只能使用del命令删除整个元组。

三.小结

Python语言中的元组类型定义后不能修改
不可变的tuple有什么意义呢?
因为tuple不可变,所以代码更安全。(安全保护数据)
如果仅考虑代码的灵活性,也可以用列表类型代替元组类型。

四.元组与列表

元组中的数据一旦定义就不允许更改,列表可以;
内建的tuple( )函数接受一个列表参数,并返回一个包含同样元素的元组,而list( )函数接受一个元组参数并返回一个列表。从效果上看,tuple( )冻结列表,而list( )融化元组
元组的速度比列表更快;
元组对不需要改变的数据进行“写保护”将使得代码更加安全;
列表是动态长度,可根据需求增减,列表的方法或操作符,为统计应用提供了简单的运算手段,元素可简单访问及遍历。
当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙;

posted @ 2018-05-22 21:57  王陸  阅读(798)  评论(0编辑  收藏  举报