元组:轻量级列表
元组创建与元素访问
列表的功能虽然很强大,但负担也很重,在很大程度上影响了运行效率。有时并不需要那么多功能,很希望能有个轻量级的列表,元组正是这样一种类型。在形式上,元组的所有元素放在一对括号中,元素之间使用逗号分隔,如果元组只有一个元素则必须在最后加一个逗号。
除了上面的方法可以直接创建元组之外,很多内置函数的返回值也是包含了若干元组的可迭代对象,如 enumerate(),zip()等。
元组与列表的异同点
相同点
列表和元组都属于有序序列,都支持使用双向索引访问其中的元素。
使用count()
方法统计元素的出现次数和index()
方法获取元素的索引,len()
,map()
,filter()
等大量内置函数和+,*,+=,in
等运算符也都可以用于列表和元组。虽然列表和元组有着一定的相似之处,但在本质上和内部实现上有很大的不同。
不同点
元组属于不可变序列,不可以直接修改元组中元素值,也无法为元组增加或删除元素。
所以,元组没有提供append()
,extend()
和insert()
等方法,无法向元组中添加元素,同样,元组也没有remove()
和pop()
方法,也不支持对元组元素进行 del 操作,不能从元组中删除元素,只能使用 del 命令删除整个元组。元组也支持切片操作,但是只能通过切片来为元组增加或删除元素。从一定程度上讲,可以认为元组是轻量级列表。
python 内部对元组做了大量优化,访问速度比列表快
如果定义了一系列常量值,主要用途仅对他们进行遍历或其他类似用途,不需要对其元素进行任何修改,那么一般建议使用元组而不用列表。元组在内部实现上不允许修改其元素值,从而使得代码更加安全。例如,调用函数时使用元组传递参数可以防止函数中修改元组,使用列表则很难保证这一点。
版权声明: 本文为 InfoQ 作者【乔乔】的原创文章。
原文链接:【http://xie.infoq.cn/article/38564d6fcdb96b6d4742bfd66】。未经作者许可,禁止转载。
评论