具体来说,我有两个字符串列表,我想将它们组合成一个字符串,其中每一行是列表中的下两个字符串,用空格分隔:
a = ['foo1', 'foo2', 'foo3']
b = ['bar1', 'bar2', 'bar3']
Run Code Online (Sandbox Code Playgroud)
我想要一个函数combine_to_lines(),它将返回:
"""foo1 bar1
foo2 bar2
foo3 bar3"""
Run Code Online (Sandbox Code Playgroud)
我承认我已经解决了这个问题,所以我要发布答案.但也许其他人有一个更好的或看到我的缺陷.
更新:我过度简化了上面的例子.在我的实际问题中,行以更复杂的方式格式化,需要从zip()返回的元组被解压缩.但是,为了达到这个例子最简单的解决方案,我感到非常荣幸.
mha*_*wke 14
没有必要解压缩并重新打包zip返回的元组:
'\n'.join(' '.join(x) for x in zip(a, b))
Run Code Online (Sandbox Code Playgroud)
的拉链函数 "返回的元组,其中,第i个元组包含来自每个参数序列或iterables的第i个元素的列表."
def combine_to_lines(list1, list2):
return '\n'.join([' '.join((a, b)) for a, b in zip(list1, list2)])
Run Code Online (Sandbox Code Playgroud)
>>> a = ['foo1', 'foo2', 'foo3']
>>> b = ['bar1', 'bar2', 'bar3']
>>> for i in zip(a,b):
... print ' '.join(i)
...
foo1 bar1
foo2 bar2
foo3 bar3
Run Code Online (Sandbox Code Playgroud)