Skip to main content
 首页 » 编程设计

python之堆叠式发电机

2025年05月04日16webabcd

为了标记文件,我有一个生成器,它会吐出文件的空格分隔部分,忽略换行符。

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 循环是左边的。