python 数据类型赋值和修改的区别

本文揭示了Python中数据类型赋值的两种不同方式:一种是创建新地址存储新值,另一种是在原地址修改值。举例说明了list.append方法和直接赋值对list的影响,强调了对原始地址的操作会直接影响之前的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 这个问题,“坑”了我一下午啊!

# 我要开始表演了!
res = []
a = [1, 2]
b = a
res.append(a)   # 存储的是 a 的地址!
print(res, b)
# [[1, 2]] [1, 2]

a = [2, 1]
print(res, b)
# [[1, 2]] [1, 2]
--------------------------------------
# 第 2 种 , 修改元素的值
res = []
a = [1, 2]
b = a
res.append(a)
print(res, b)
# [[1, 2]] [1, 2]
a[0], a[1] = a[1], a[0]
print(res, b)
# [[2, 1]] [2, 1]
--------------------------------------
# 第 3 种 , 索引取元素是取的值
res = []
a = [1, 2]
b = a[0]
res.append(a[0])   # 存储的是 a[0] 的值!
print(res, b)
#[1] 1
a[0], a[1] = a[1], a[0]
print(res, b)
#[1] 1

1. 第一种是指向另一个存储新值的地址,第二种是直接在原地址修改值
2. 由此可见,list.append方法 也好,b= 也好,如果是list 名字,则为list当时的地址,此后该 list 指向其它地址,不影响之前操作;若原地址修改,则影响;如果是元素,则直接赋值!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值