为什么会提前变黄色,结果全变黄色了
# 因为字典是可变类型的数据
# 把同一个字典多次直接放入列表中,列表中每个字典都是同一个地址。
# 改变其中一个字典的属性,列表中所有的字典都会改变
ic = {"name":"123"}
lis = [dic for i in range(3)]
lis[0]["name"] = "456"
print(*lis,sep="\n")
# 应该字典放入列表中时复制一份,让列表中每个字典是不同的地址。
dic = {"name":"123"}
lis = [dic.copy() for i in range(3)]
lis[0]["name"] = "456"
print(*lis,sep="\n")
这是字典,而不是列表。
你的第二行aliens这么生成是浅拷贝,所以你改一个的话其他的也会跟着变。例如:
l=[1,2,3,4,5]
ll=[l for i in range(3)]
print(ll) #[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
ll[1][1]=6
print(ll) #[[1, 6, 3, 4, 5], [1, 6, 3, 4, 5], [1, 6, 3, 4, 5]]
#但是如果:
lll=[[i for i in l] for j in range(3)]
lll[1][1]=6
print(lll) #[[1, 2, 3, 4, 5], [1, 6, 3, 4, 5], [1, 2, 3, 4, 5]]
列表解析这样是正常的呀,没什么问题?图标只是一个警告,没什么关系。
小白,列表解析这样是不是有问题
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y