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

非常感谢!

4

1 回答 1

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]]
于 2013-04-03T14:54:35.393 回答