在列表推导中创建列表

时间:2015-07-16 16:21:32

标签: python list list-comprehension

我该怎么做:

[char for line in grid for i,char in enumerate(line) if len(line[i:])>3]

返回符合条件的每一行的字符列表:

[[char for line in grid] for i,char in enumerate(line) if len(line[i:])>3] #NameError:名称'line'未定义

1 个答案:

答案 0 :(得分:0)

我猜你正在寻找 -

[[char for i,char in enumerate(line) if len(line[i:])>3] for line in grid]

你应该在列表中移动第二个for循环和条件,而不是第一个。当没有列表时,执行顺序是 - 首先是循环 - for line in grid - >第二个循环 - for i,char in enumerate(line)

以上将保留该顺序,并为符合条件的每一行创建一个字符作为单独的列表。