Объединение списков Python через распаковку и reversed

Создайте новый список через распаковку: c = [*a, 'a', *reversed(b)]. Это сохранит исходные a и b и даст [1, 2, 3, 'a', 4, 5, 6].

Короткий ответ

Что ответить на собеседовании

Создайте новый список через распаковку: c = [*a, 'a', *reversed(b)]. Это сохранит исходные a и b и даст [1, 2, 3, 'a', 4, 5, 6].

Подробный разбор

Ответ с пояснениями

Условие

Есть 2 списка
a = [1, 2, 3]
b = [6, 5, 4]
требуется собрать итоговый список, содержащий все элементы первого, символ "a" и все элементы второго в обратном порядке
пример c = [1, 2, 3, 'a', 4, 5, 6]

Ответ

Создайте новый список через распаковку: c = [*a, 'a', *reversed(b)]. Это сохранит исходные a и b и даст [1, 2, 3, 'a', 4, 5, 6].

Полный пример:

a = [1, 2, 3]
b = [6, 5, 4]
c = [*a, "a", *reversed(b)]
print(c)

Альтернатива — a + ['a'] + b[::-1]. Оба варианта создают новый внешний список, но не глубокие копии вложенных объектов. Вызов b.reverse() изменил бы исходный b и вернул None, поэтому вставлять его результат в выражение конкатенации нельзя. Время и память результата линейны по суммарной длине списков.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее