在列表推导中创建列表

Create a list within a list comprehension

我该怎么做:

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

return 满足条件的每行的字符列表:

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

我猜你在找 -

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

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

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