我正在尝试使生成器将列表中的每个项目与文件的每一行连接起来。
我的文件/tmp/list
包含:
foo
bar
我的代码是:
mylist = [
'hello',
'world'
]
def _gen():
for x in mylist:
with open('/tmp/list') as fh:
yield('-'.join([x, next(fh)]))
for i in _gen():
print(i)
我得到的输出是:
hello-foo
world-foo
我的目标是:
hello-foo
hello-bar
world-foo
world-bar
最佳答案
您只有一个外部循环,并且只需使用next
抓取文件的第一行。但是您也想遍历fh
-即应该有两个循环。
for x in mylist:
with open('/tmp/list') as fh:
for line in fh:
yield '-'.join([x, line.strip()])
关于python - 在next()中使用yield,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52956275/