У меня есть два списка, , первый из которых, как гарантируется, содержит ровно еще один пункт, чем второй. Я хотел бы знать самый Pythonic способ создать новый список, чьи значения с четным индексом исходят из первого списка, а значения нечетного индекса - из второго списка.Pythonic способ объединить два списка в чередующемся режиме?
# example inputs
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
# desired output
['f', 'hello', 'o', 'world', 'o']
Это работает, но не очень:
list3 = []
while True:
try:
list3.append(list1.pop(0))
list3.append(list2.pop(0))
except IndexError:
break
Как еще это может быть достигнуто? Какой самый питонический подход?
возможно дубликат [Чередование итераторы в Python] (http://stackoverflow.com/questions/2017895/alternating-between-iterators-in-python) –
Не дубликат! В принятом ответе в вышеприведенной статье создается список кортежей, а не один объединенный список. –
@Paul: Да, принятый ответ не дает полного решения. Прочтите комментарии и другие ответы. Вопрос в основном тот же, и другие решения могут быть применены здесь. –