Python列表乘法:[[...]] * 3生成3个列表,它们在修改后会相互镜像 [英] Python list multiplication: [[...]]*3 makes 3 lists which mirror each other when modified

查看:99
本文介绍了Python列表乘法:[[...]] * 3生成3个列表,它们在修改后会相互镜像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么会这样?我不太了解:

Why this is happening? I don't really understand:

>>> P = [ [()]*3 ]*3
>>> P
[[(), (), ()], [(), (), ()], [(), (), ()]]
>>> P[0][0]=1
>>> P
[[1, (), ()], [1, (), ()], [1, (), ()]]

推荐答案

您已对同一列表进行了3次引用.

You've made 3 references to the same list.

>>> a = b = []
>>> a.append(42)
>>> b
[42]

您要执行以下操作:

P = [[()] * 3 for x in range(3)]

这篇关于Python列表乘法:[[...]] * 3生成3个列表,它们在修改后会相互镜像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆