一、前言
想必大家都知道,在Python数据类型中有两个对象:元组 tuple 和列表 list 。
它们的写法和用法都十分相似,傻傻分不清楚。可能有的同学就会疯狂的去网上查找它们之间的区别了,可是查到的无外乎有以下几种说法:
list 是可变的对象,元组 tuple 是不可变的对象!
由于 tuple 不可变,所以使用 tuple 可以使代码更安全!等等 …
下面我们来分析list和python的区别
二、List列表
list是一种有序的集合,可以随时添加和删除其中的元素
列出数组num中的所有元素:
使用append()函数可以在其末尾添加元素:
insert()函数可以将元素插入添加到指定位置:
如在第二个索引位置加上‘q’这个元素。
使用pop()可以删除list最后一个元素
使用pop(i)其中i是索引号,可以删除指定位置的元素。
index()函数,查找列表中的元素,返回是它的索引值
list里面的元素类型可以不同,不仅如此,它的元素还可以是另一个list :
三、tuple元组
tuple是一种有序列表,它和list非常相似,但是(但是前面的话也不都是废话)
tuple一旦初始化就不能修改,而且没有append() insert()这些方法,可以获取元素但不能赋值变成另外的元素
如果创建一个空元组,直接使用小括号即可;
如果要创建的元组中只有一个元素,要在它的后面加上一个逗号‘,’。
(1)这个代表的数字1,是个数,不是元组
tuple()函数将列表转化为元组
四、tuple和list之间的差异
tuple是静态的固定大小的,而list是动态分配存储空间,自动扩容的。
同样的元素,list要存储指向元素的指针与要存储当前长度大小,所以要比tuple占更多的存储空间。例:
五、结论
相对于 list 而言,tuple 内的元素是不可变的。
tuple 放弃了对元素的增删(内存结构设计上变的更精简),换取的是性能上的提升:**创建 tuple 比 list 要快,存储空间比 list 占用更小。**所以就出现了“能用 tuple 的地方就不用 list”的说法。
用 Tuple 的好处
Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 。