我是Python的新手,出于某些需求,我试图弄清楚如何使用列表列表。
这是我在做什么:
segment_coef = [[list()]*4]*17
print segment_coef
segment_coef[0][0].append(1)
segment_coef[1][0].append(2)
segment_coef[2][0].append(3)
print segment_coef
首先,print
我有:
[ [ [],[],[],[] ] , ... 14 more time ... , [ [],[],[],[] ] ]
在完成这三个append
命令后,我想进行如下操作:
[ [ [1],[],[],[] ] , [ [2],[],[],[] ], [ [3],[],[],[] ] ]
但是我有:
[ [ [1,2,3],[1,2,3],[1,2,3],[1,2,3] ] , [ [1,2,3],[1,2,3],[1,2,3],[1,2,3] ], ... up to the end ]
我究竟做错了什么?
有两种方法可以创建一个17个列表的列表,每个列表包含4个子列表
最短的是
[[list() for i in range(4)] for j in range(17)]
如果这样做,您的附件将按您希望的那样工作
如果您熟悉不具备列表理解功能的C或Java之类的语言,则对您来说,这种方式可能看起来更熟悉:
l = []
for j in range (17):
k = []
for i in range (4):
k.append(list())
l.append (k)
这也是可以接受的,但是对于许多python头来说,列表理解是更可取的。list comp应该在性能方面至少与理解一样好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句