元组和列表有什么区别呢?
大家听到最多应该是,元组不可变,列表可变这个区别吧!
元组放弃了对元素的增删,内存结构设计上变的更精简,换取的是性能上的提升:创建元组比列表要快,存储空间比列表 占用更小。所以就出现了“能用元组的地方就不用列表的说法。
而且在多线程并发的时候,元组是不需要加锁的,不用担心安全问题,编写也简单多了。
如果非要修改元组可以吗?答案是可以的!
修改元组中的元素
我们直接在同一个元组上更新是不可行的,但是可以通过拷贝现有的元组片段构造一个新的元组的方式解决。
我们通过切片的方法让元组拆分成两部分,然后再使用连接操作符+合并成一个新元组,最后将原来的变量名(temp)指向连接好的新元组。如果加入一个元组的话,后面的逗号不能省,下面例子中,元素「公众号」后面这个逗号不能去掉。因为创建只包含一个元素的元组时,后面必须带上逗号,否则它不是元组。
temp = (‘一行’, ‘菜鸟程序员’, ‘一行数据’)
temp = temp[:2] + (‘公众号’,) + temp[2:]
temp