为了标记化文件,我有一个生成器,它会抛出文件的空白分隔部分,忽略换行符.
def parts(filename):
file = open(filename, 'r')
for line in file:
for part in line.split():
yield part
Run Code Online (Sandbox Code Playgroud)
现在,我想把它写成一个生成器理解 - 什么不起作用是:
p = (part for part in line.split() for line in file)
Run Code Online (Sandbox Code Playgroud)
要么
p = (part for part in (line.split() for line in file))
Run Code Online (Sandbox Code Playgroud)
后者吐出分割线而不是分割线的部分
使用以下语法:
p = (part for line in file for part in line.split())
Run Code Online (Sandbox Code Playgroud)
生成器表达式中最外层的for循环是左边的.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |