Пифонический способ объединить два списка поочередно?

У меня есть два списка, первый из которых гарантированно будет содержать ровно на один элемент больше, чем второй . Я хотел бы узнать, какой способ создания нового списка с помощью Python, чьи значения четных индексов берутся из первого списка, а значения нечетных индексов - из второго списка.

# 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

Как еще этого можно достичь? Каков наиболее эффективный подход Pythonic?

75
задан davidchambers 9 September 2010 в 17:45
поделиться