Чтобы чередовать два списка разной длины в 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]
Не стесняйтесь спрашивать, если у вас есть дополнительные вопросы!