大家都知道list是一个可变对象,tuple是不可变对象
2者区别
问下gpt,
利用tuple特性来return多个值,返回的是一个元组
对1.可变性的补充
元组不可变指的是元组里元素的内存地址不可改变 元组只能控制外层不可变,内层可变
对2.性能的补充
相对于 list 而言,tuple 是不可变的,这使得它可以作为 dict 的 key,或者扔进 set 里,而 list 则不行。
tuple 放弃了对元素的增删(内存结构设计上变的更精简),换取的是性能上的提升: 创建 tuple 比 list 要快,存储空间比 list 占用更小。 所以就出现了“能用 tuple 的地方就不用 list”的说法。
多线程并发的时候,tuple 是不需要加锁的,不用担心安全问题,编写也简单多了