1

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

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))

后者吐出分割线而不是分割线的部分

4

2 回答 2

6

使用此语法:

p = (part for line in file for part in line.split())

生成器表达式中最外层的 for 循环是左边的循环。

于 2013-03-26T09:31:58.947 回答
1
(word for line in input_file for word in line.split())
于 2013-03-26T09:32:39.327 回答