我如何在Python中迭代两个或更多列表的项的元组?

5 浏览
0 Comments

我如何在Python中迭代两个或更多列表的项的元组?

这个问题已经有了答案:

如何同时迭代两个列表?

具体来说,我有两个字符串列表,我想将它们合并成一个字符串,其中每一行都由列表中的下两个字符串组成,用空格分隔:

a = ['foo1', 'foo2', 'foo3']
b = ['bar1', 'bar2', 'bar3']

我想要一个名为combine_to_lines()的函数,返回:

"""foo1 bar1
foo2 bar2
foo3 bar3"""

我承认我已经解决了这个问题,所以我要发布答案。但是也许有人有更好的解决方案或者看到了我的问题所在。

更新:我上面的例子过于简化了。在我的实际问题中,这些行以一种更复杂的格式进行了格式化,需要从zip()返回的元组进行解包。但是感谢mhawke提供了这个例子最简单的解决方案。

admin 更改状态以发布 2023年5月23日
0
0 Comments

zip函数会"返回一个元组的列表,其中第i个元组包含来自每个参数序列或可迭代对象的第i个元素。"

def combine_to_lines(list1, list2):
    return '\n'.join([' '.join((a, b)) for a, b in zip(list1, list2)])

0
0 Comments

解压并重组 zip 返回的元组并不是必要的:

'\n'.join(' '.join(x) for x in zip(a, b))

0