所以我有两个清单:
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]
,即电路板的前三个索引。
答案 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]