我試圖遍歷列表中的多個元組,並將每個元組中的項以特定順序返回到一個字符串中。迭代通過多個元組並返回字符串
例如,如果我輸入:
['ABCD', 'EFGH', 'IJKL']
我希望它返回:
'AEIBFJCGKDHL'
預先感謝您的幫助!
我試圖遍歷列表中的多個元組,並將每個元組中的項以特定順序返回到一個字符串中。迭代通過多個元組並返回字符串
例如,如果我輸入:
['ABCD', 'EFGH', 'IJKL']
我希望它返回:
'AEIBFJCGKDHL'
預先感謝您的幫助!
您需要zip:
lst = ['ABCD', 'EFGH', 'IJKL']
''.join(l for t in zip(*lst) for l in t)
# 'AEIBFJCGKDHL'
import itertools
''.join(itertools.chain(*zip(*mylist)))
或者:(感謝juanpa.arrivillaga和PM_2Ring爲有用的意見)
import itertools
''.join(itertools.chain.from_iterable(zip(*mylist)))
也許'chain.from_iterable' –
當你有選擇時(因爲它必須掃描兩次字符串),當然最好通過'.join'列表而不是迭代器。當你沒有選擇時,不需要明確調用list,''.join'可以在內部執行該調用。 –
只是一個附加選項(其他答案也可以):
lst = ['ABCD', 'EFGH', 'IJKL']
''.join(map(''.join, zip(*lst)))
對於給定輸入,hemflit's chain.from_iterable
solution更快,但對於大量輸入字符串(甚至從3增加到6),此方法獲勝。
此外,作爲旁註,您還可以處理輸入不匹配len
而不丟棄數據使用itertools.zip_longest
,通過fillvalue=''
。
我在這裏沒有看到元組...... –