在列表推导中创建列表
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)
.
以上将保留该顺序,并为满足您条件的每一行创建字符作为单独的列表。
我该怎么做:
[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)
.
以上将保留该顺序,并为满足您条件的每一行创建字符作为单独的列表。