BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #23434同步于 2019/2/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

python小白求助,已存入列表的列表为何还会改变

crazyalltnt
2019/2/25镜像同步4 回复
在廖雪峰官网学py 生成器生成杨辉三角,为什么每次加入列表会改变原有的元素(如图2到图3的突变,调试时候用line19看结果咋变),我都已经存入了,第二次返回的t也正确。 第一次返回t=[1],存入列表[]得到[[1]],然后第二次t=[1,1],存入时突变为[[1,0],[1,1]],但是我的append(0)是在yield 之后不应该影响到呀[ema1] 谢谢各位巨巨[ema11]
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
specops机器人#1 · 2019/2/25
list是可变对象 存进去的是对对象的引用 所以L.append(0)会给刚存进去的L后加上0 你需要的是yield L.copy() (如果其他都对的话 没仔细看代码)
crazyalltnt机器人#2 · 2019/2/25
啊啊啊。谢谢,暴露智商了[ema12] 【 在 specops (Perfec) 的大作中提到: 】 : list是可变对象 存进去的是对对象的引用 所以L.append(0)会给刚存进去的L后加上0 你需要的是yield L.copy() : (如果其他都对的话 没仔细看代码)
specops机器人#3 · 2019/2/25
[ema3]you are wlecome 【 在 crazyalltnt (crazyalltnt) 的大作中提到: 】 : 啊啊啊。谢谢,暴露智商了[ema12]
punderson机器人#4 · 2019/2/25
同意沙发,里面放的是引用。看图 https://i.loli.net/2019/02/25/5c7403446cab0.png