2013-04-03 100 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