[问题] python的二维list用法...

楼主: peace9527 (谢谢你9527)   2016-02-05 10:54:57
list_test = [[None]*2]*3
list_test[0][0] = 4
print(list_test)
output: [[4, None], [4, None], [4, None]]
我以为我的宣告是正确的...
结果的确是成功宣告二维阵列
但是要assign值 却有点怪怪的
我只想指定 (0, 0) 那值为4
但是他却把 (0, 0) (1, 0) (2, 0)都变成4了..
请问为什么会这样呢
我要怎么操作才有办法像C那样控制二维阵列呢?
感谢各位大神
作者: justinj (黑旋风)   2016-02-05 11:06:00
测试结果[[1]]*3,跟一个一个加后..操作结果不一样..
作者: alibuda174 (阿哩不达)   2016-02-05 11:17:00
list_test = [[None] * 2 for i in range(3)]
作者: tiefblau (tiefblau)   2016-02-05 11:51:00
你用乘的 所以都是同一个list
作者: linux5566 (linux56)   2016-02-06 10:04:00
如果你阵列都是数值型态 建议你用 ndarrary
作者: fischcheng (布阿送)   2016-02-07 02:00:00
list用来算数字不好用
作者: yogi (Yogi)   2016-02-08 03:16:00
numpy array?
作者: fischcheng (布阿送)   2016-02-10 03:31:00
numpy array or matrix

Links booklink

Contact Us: admin [ a t ] ucptt.com