为了标记文件,我有一个生成器,它会吐出文件的空格分隔部分,忽略换行符。
def parts(filename):
file = open(filename, 'r')
for line in file:
for part in line.split():
yield part
现在,我想把它写成生成器理解 - 没有用的是:
p = (part for part in line.split() for line in file)
或
p = (part for part in (line.split() for line in file))
后者吐出的是分割线而不是分割线的部分
最佳答案
使用这个语法:
p = (part for line in file for part in line.split())
生成器表达式中最外层的 for 循环是左边的。
关于python - 堆叠式发电机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15633476/