使用python在列表中创建列表

时间:2012-02-15 01:03:25

标签: python list for-loop

所以我有两个清单:

shape = [1,2,4]
board = [0,0,1,0,0,0,1,1,1]

我想使用for循环将板索引分配给形状索引,以便我可以放置任何形状大小。我希望形状的输出为[0,0,1]

我尝试过:

list1 = []
for x in shape:
      list1.append(board[x])

但它给我的输出是[0,1,0]

我希望输出为[0,0,1],即电路板的前三个索引。

3 个答案:

答案 0 :(得分:3)

您目前正在使用

list1 = []
for x in shape: 
    list1.append(board[x])

此代码表示list1等于[board[1], board[2], board[4]],因为您从空列表开始,然后为board[x]中的每个x附加shape(因为列表索引在Python中从0开始)。你可能想要像

这样的东西
list1 = []
for i in xrange(len(shape)):
    list1.append(board[i])

现在i根据需要在0到2之间。

答案 1 :(得分:1)

那你的意思是shape中的数字没有区别?您只需要len(shape)中的第一个board项,而不管shape中的数字是什么?

在那种情况下:

board[0:len(shape)]

答案 2 :(得分:-1)

列表索引是从0开始的,索引[1,2,4]的董事会项目是[0,1,0]。 如果你想使用基于1的索引,你需要调整它们:

 list1 = [board[i-1] for i in shape]