list列表的兄弟情(曾经的一家人...)

list列表的兄弟情

上集:一家人

# 一家人的全部家当:
family = [0, 1, 2, 3, 4, 5]

# 这些家当是兄弟一的,也是兄弟二的:
brother1 = brother2 = family

取list变量整体进行赋值。如下图所示,左侧的三个list变量,指向的是同一块内存区域(幸福的一家)。
一家人

# 兄弟一小富了,兄弟二也跟着小富,全家都小富(按索引修改):
brother1[0] = 8

# 兄弟一大发了,兄弟二也跟着大发,全家都大发(按切片修改):
brother1[1:3] = [88, 888]

幸福的一家人,有福同享,共同富裕。兄弟一的,是兄弟二的,也是全家的。

一家人

print('大家始终是幸福一家:', family, brother1, brother2)
大家始终是幸福一家: [8, 88, 888, 3, 4, 5] [8, 88, 888, 3, 4, 5] [8, 88, 888, 3, 4, 5]

下集:分家后

# 一家人原始的家当:
family = [0, 1, 2, 3, 4, 5]

# 分家啦,各分得相应家当:
brother1 = family[0:3]
brother2 = family[3:]

原有的家当被一分为二,兄弟一是兄弟一的,兄弟二是兄弟二的,各自是各自的。

分家后

# 兄弟一又小富了(按索引修改):
brother1[0] = 8

# 兄弟一又大发了(按切片修改):
brother1[1:3] = [88, 888]

这一次,跟兄弟二没关系,跟原来的家庭更没关系。family列表就像一张发黄的老照片,挂在那里,仅仅标示着曾经的过往…

分家后

总结:

  • 取list列表变量整体,赋值给另外的变量,则大家指向的是同一块list内存区域,一改同时改;
  • 取list按索引或者分片得到的结果赋值给另外的变量,则触发“分家”,会在内存中开辟新的空间;
  • 对list变量的局部修改,只要是直接修改(不经过上述另外变量周转),无论是按索引修改,还是按切片修改,修改的都是该list指向的内存空间。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值