Python笔记整理第四十五篇(元组为什么设计为不可变序列)

为什么要将元组设计成不可变序列?
在多任务环境下,同时操作对象时不需要加锁,因此在程序中尽量使用不可变序列。

注意事项:
元组中存储是对象的引用:
①如果元组中对象本身不可变对象,则不能再引用其他对象;
②如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据可以改变。
例如:元组里面有列表和整数数据元素,列表是可以改变的,而整数元素是不可变的。
在这里插入图片描述
代码如下:

#打工人:朱乔栋
#革命尚未成功,同志仍需努力


t=(10,[20,30],9)
print(t)
print(type(t))
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]),id(t[2]))

'''尝试将t[1]修改为100'''
print(id(100))
#t[1]=100    #元组是不允许修改元素的
'''由于[20,30]列表,而列表是可变序列,所以可以向列表中添加元素,而列表的内存地址不变'''
t[1].append(100)   #向列表中添加元素
print(t,id(t[1]))

运行结果:

(10, [20, 30], 9)
<class 'tuple'>
10 <class 'int'> 1540121840
[20, 30] <class 'list'> 19678672
9 <class 'int'> 1540121824
1540123280
(10, [20, 30, 100], 9) 19678672

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值