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']的两个实例。