python中元组(tuple)和列表(list)的区别

一、前言

  想必大家都知道,在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 。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值