关于python:我没有指定2年,但它是如何分配的?

I did'nt assign 2 y's but how it got assigned?

本问题已经有最佳答案,请猛点这里访问。

我只分配了一个Y,但是如何在内部分配了2个Y?

1
2
3
4
5
6
x=[['', 'a', 'b'], ['', 'c', 'd']]*2
print(x)
x[0][0]='y'
print('
'
)
print(x)

输出

1
2
[['', 'a', 'b'], ['', 'c', 'd'], ['', 'a', 'b'], ['', 'c', 'd']]
[['y', 'a', 'b'], ['', 'c', 'd'], ['y', 'a', 'b'], ['', 'c', 'd']]


将x初始化为两个列表的列表。您可以在print(x)的输出中看到这一点。

但是,这两个列表是同一个对象。当您以如下方式创建一个列表时:【值】*n,它将引用相同的对象n次来填充您的列表。

因此,x[0]指向的是['y'、'a'、'b']的两个实例。