Создайте новый список через распаковку: c = [*a, 'a', *reversed(b)]. Это сохранит исходные a и b и даст [1, 2, 3, 'a', 4, 5, 6].
Объединение списков Python через распаковку и reversed
Создайте новый список через распаковку: 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, поэтому вставлять его результат в выражение конкатенации нельзя. Время и память результата линейны по суммарной длине списков.