Как элегантно чередовать два списка нечетной длины?Python

Программы на Python
Anonymous
Как элегантно чередовать два списка нечетной длины?

Сообщение Anonymous »

Я хочу объединить два списка в Python, причем списки будут разной длины, чтобы элементы более короткого списка располагались как можно более равномерно в конечном списке.
то есть Я хочу:

Код: Выделить всё

l1 = [1, 2, 3, 4]
l2 = ['a', 'b']

output = [1, 'a', 2, 3, 'b', 4]
Он также должен иметь возможность работать со списками, которые не являются кратными, поэтому может потребоваться:

Код: Выделить всё

l1 = [1, 2, 3, 4, 5]
l2 = ['a', 'b', 'c']
и создайте [1, 'a', 2, 'b', 3, 'c', 4, 5] или подобное.
Необходимо сохранить порядок обоих списков.
Я понимаю, как это сделать с помощью долговременного метода грубой силы, но поскольку Python, похоже, имеет огромный массив отличные инструменты для выполнения всяких умных вещей, о которых я (пока) не знаю. Интересно, есть ли что-нибудь более элегантное, что я могу использовать?

Если вам нужно регулярное чередование (с равными интервалами), см. Как чередовать два списка разной длины?

Подробнее здесь: https://stackoverflow.com/questions/192 ... ven-length

Вернуться в «Python»