关于#python#的问题:为什么其他的列表都添加5 我只用了第二个啊

img


我只想让这个矩阵中第二行的列表添加数字
为什么其他的列表都添加了 我只指定了第二个啊?

因为你是用 * 方式创建的多维列表,相当于复制。 所以你改变一个,其他会跟着变。 你别用* 方式创建多维list,用类似下面这样:

multi=[8]*3
for i in range(3):
    multi[i]=[8]*2
print(multi)
multi[1].append(5)
print(multi)


也就是如下:

multi=[[]]*3
for i in range(3):
    multi[i]=['']
print(multi)
multi[1].append(5)
print(multi)

用乘号复制出来的列表,使用的全部是同一个对象
你需要改为multi=[[[]] for x in range(3)]