我正在尝试遍历列表中的多个元组,并按特定顺序将每个元组中的项返回到字符串中。
例如,如果我输入:
['ABCD', 'EFGH', 'IJKL']
我希望它能回归:
'AEIBFJCGKDHL'
提前感谢您的帮助!
答案 0 :(得分:4)
您需要zip:
lst = ['ABCD', 'EFGH', 'IJKL']
''.join(l for t in zip(*lst) for l in t)
# 'AEIBFJCGKDHL'
答案 1 :(得分:4)
import itertools
''.join(itertools.chain(*zip(*mylist)))
或者:
import itertools
''.join(itertools.chain.from_iterable(zip(*mylist)))
(感谢juanpa.arrivillaga和PM_2Ring提供了有用的评论。)
答案 2 :(得分:0)
只需一个选项(其他答案也可以):
lst = ['ABCD', 'EFGH', 'IJKL']
''.join(map(''.join, zip(*lst)))
对于给定的输入,hemflit's chain.from_iterable
solution更快,但对于更多的输入字符串(甚至从3增加到6),这种方法获胜。
另外,作为旁注,您还可以处理不匹配len
的输入,而不会使用itertools.zip_longest
丢弃数据,并传递fillvalue=''
。