list和tuple的区别

157 阅读1分钟

大家都知道list是一个可变对象,tuple是不可变对象

2者区别

问下gpt, image.png

利用tuple特性来return多个值,返回的是一个元组 image.png

对1.可变性的补充

元组不可变指的是元组里元素的内存地址不可改变 元组只能控制外层不可变,内层可变

image.png

对2.性能的补充

相对于 list 而言,tuple 是不可变的,这使得它可以作为 dict 的 key,或者扔进 set 里,而 list 则不行。

tuple 放弃了对元素的增删(内存结构设计上变的更精简),换取的是性能上的提升: 创建 tuple 比 list 要快,存储空间比 list 占用更小。 所以就出现了“能用 tuple 的地方就不用 list”的说法。

多线程并发的时候,tuple 是不需要加锁的,不用担心安全问题,编写也简单多了

附录:juejin.cn/post/724036…