Python: как чередовать два списка разной длины

Чтобы чередовать два списка разной длины в Python, вы можете использовать различные методы. Вот несколько подходов:

Метод 1: использование zip_longest из модуля itertools

from itertools import zip_longest
def interleave_lists(list1, list2):
    return [val for pair in zip_longest(list1, list2) for val in pair if val is not None]
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']
result = interleave_lists(list1, list2)
print(result)  # Output: [1, 'a', 2, 'b', 3, 'c', 4]

Метод 2: использование цикла и добавление элементов

def interleave_lists(list1, list2):
    result = []
    for i in range(max(len(list1), len(list2))):
        if i < len(list1):
            result.append(list1[i])
        if i < len(list2):
            result.append(list2[i])
    return result
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']
result = interleave_lists(list1, list2)
print(result)  # Output: [1, 'a', 2, 'b', 3, 'c', 4]

Метод 3. Использование списков и нарезки

def interleave_lists(list1, list2):
    return [val for pair in zip(list1[:len(list2)], list2) for val in pair] + list1[len(list2):]
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']
result = interleave_lists(list1, list2)
print(result)  # Output: [1, 'a', 2, 'b', 3, 'c', 4]

Не стесняйтесь спрашивать, если у вас есть дополнительные вопросы!