x[:][1]
是整个阵列行1和x[1][:]
都是x
的第1行,所以他们都指向同一行。
In [2]: x[:]
Out[2]:
[[86, 92, 95, 78, 68],
[76, 80, 44, 30, 73],
[48, 85, 99, 35, 14],
[3, 84, 50, 39, 47],
[3, 7, 67, 28, 65],
[19, 13, 98, 53, 33],
[9, 97, 35, 25, 89],
[48, 3, 48, 5, 1],
[21, 40, 72, 61, 62],
[58, 43, 84, 69, 26]]
In [3]: x[1]
Out[3]: [76, 80, 44, 30, 73]
In [4]: x[1][:]
Out[4]: [76, 80, 44, 30, 73]
使用x[:]
经常使用,如果你想的x
的副本保存在一个变量,不只是一个参考吧:
In [6]: x1 = x[:]
In [7]: x1
Out[7]:
[[86, 92, 95, 78, 68],
[76, 80, 44, 30, 73],
[48, 85, 99, 35, 14],
[3, 84, 50, 39, 47],
[3, 7, 67, 28, 65],
[19, 13, 98, 53, 33],
[9, 97, 35, 25, 89],
[48, 3, 48, 5, 1],
[21, 40, 72, 61, 62],
[58, 43, 84, 69, 26]]
创建一个副本:
In [11]: x1 = x[:]
In [12]: id(x1) # different objects so different id's
Out[12]: 140130415845104
In [13]: id(x)
Out[13]: 140130400510176
创建参考:
In [14]: x1 = x
In [15]: id(x) # same object so same id's
Out[15]: 140130400510176
In [16]: id(x1)
Out[16]: 140130400510176
你为什么使用列表清单?你有NumPy!你正在使用NumPy的随机数发生器!使用数组!如果你有一个数组而不是列表列表,'x [i,:]'和'x [:,i]'会做你想要的。 – user2357112
因为我有不同大小和类型的列表,这里的示例仅用于说明。 – ipluto