python - 堆叠式发电机

标签 python generator

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

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/

相关文章:

iterator - 无限期地重复 Julia 迭代器

javascript - 使用promise等待数据库操作

python - 是否可以保证这将是一个生成器?

javascript - django 的 CSS/JavaScript 管理器

python - 如何为 Scipy 的 csr_matrix 指定行名和列名?

python - python 2.4 的 functools.wraps

python - 如何使用python从状态和时间计算运行时间

python - 在 Windows 10 : Failed to compile cuda_ndarray. cu 上导入 Theano 时出错

python - 如何获取一个生成器函数的多个实例

python - 生成器未按预期运行