列清單列表裏面所以,我有兩個列表:使用python
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]
,所述板的前三個索引。
列清單列表裏面所以,我有兩個列表:使用python
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的,索引[1,2,4]中的棋盤項目實際上是[0,1,0]。 如果你想使用基於1的索引,你需要對它們進行調整:
list1 = [board[i-1] for i in shape]
>>> shape = [1,2,4] >>> board = [0,0,1,0,0,0,1,1,1] >>> list1 = [board [i-1 ]對於i的形狀] >>> list1的 [0,0,0] – user1210298 2012-02-15 01:12:39
此代碼不會產生'[0,0,1]',其中OP是尋找。相反,它會產生'[0,0,0]'。 – 2012-02-15 01:12:52
[0,0,0]是指定索引的值,那不是我的錯。不管你有什麼數據,你希望輸出是[0,0,1]?! – yurib 2012-02-15 01:15:33
那麼你的意思是,在shape
的數字有什麼區別?無論shape
中的號碼如何,您只需要board
中的第一個len(shape)
項?
在這種情況下:
board[0:len(shape)]
非常感謝! :) – user1210298 2012-02-15 01:15:33
您正在用
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,根據需要。
你錯寫了'board [1]',我把1改爲i。 – yurib 2012-02-15 01:11:50
@yurib感謝您解決我的錯誤。 – 2012-02-15 01:13:20
如果你想要板的前3個元素,爲什麼'shape = [0,1,2]'? – 2012-02-15 01:16:53