2013-04-03 127 views
0

允許在「列表列表」上使用理解列表嗎? 我想從嵌套列表中提取一個列表。 我也試試這個:嵌套列表上的理解列表(列表清單)

def main(): 
    a = ['1','2','3'] 
    b = ['4','5','6'] 
    c = ['7','8','9'] 
    board = [a,b,c] 
    y = [x for x in board[1][i] if i in range(0,3)] 
    print y 

,但我得到「NameError:名字‘我’沒有定義」。 我使用錯誤的語法或嵌套列表不能使用像這樣?

非常感謝!在列表內涵

+0

你期望的輸出* *什麼是? –

回答

2

嵌套循環的工作方式相同for循環嵌套爲定期,一個在另一個內部:

y = [x for i in range(3) for x in board[1][i]] 

但在這種情況下,只需選擇board[1][:]會更容易,給你同樣的結果;中間行的副本。

如果您需要在該行的表達式適用於每一列,則剛剛超過board[1]直接循環:

y = [foobar(c) for c in board[1]] 
+0

非常好,謝謝。似乎我真的需要學習更多... – Lornioiz

+0

理解列表允許我也選擇一列,而不僅僅是一行。有一種更快的方式來返回列,就像你用「board [1] [:]」做的那樣? 謝謝! – Lornioiz