我正在尝试生成一个将列表中的每个项目与文件的每一行连接起来的生成器。
我的文件/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
答案 0 :(得分:2)
您只有一个外部循环,您只需使用next
来抓取文件的 first 行。但是您也要遍历fh
-即应该有两个循环。
for x in mylist:
with open('/tmp/list') as fh:
for line in fh:
yield '-'.join([x, line.strip()])