Вы ищете str.join
и zip
как много состояний:
Использование map
для ускорения и ' - '.join
принимает последовательность строк и соединяет их в одну, разделеннуюисходная строка, в то время как zip
делает итерируемую из нескольких последовательностей.
>>> quotes = ['Tough times don’t last. Tough people do.', 'Courage is one step ahead of fear.']
>>> authors = ['Robert H. Schuller','Coleman Young']
>>> list(map(' - '.join, zip(quotes, authors))))
['Tough times don’t last. Tough people do. - Robert H. Schuller', 'Courage is one step ahead of fear. - Coleman Young']
В качестве альтернативы вы также можете использовать понимание списка вместо карты, что является более предпочтительным способом, так как он более читабелен и в большинстве случаев более оптимизированхотя я считаю, что карта должна быть быстрее, хотя я не проверял:
[' - '.join(*s) for s in zip(quotes, authors)]