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ループは、左側の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 に答える