嵌套列表上的理解列表(列表列表)

时间:2013-04-03 14:52:08

标签: python python-2.7 list-comprehension nested-lists

允许在“列表列表”中使用理解列表? 我想从嵌套列表中提取一个列表。 我试过这个:

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:名称'我'未定义”。 我使用了错误的语法或嵌套列表不能像这样使用?

非常感谢!

1 个答案:

答案 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]]