result = []
while list1 and list2:
result.append((list1 if list1[-1] > list2[-1] else list2).pop(-1))
if len(list1):
result += list1[-1::-1]
if len(list2):
result += list2[-1::-1]
return result[-1::-1]
Решение @Abhijit и @intel не работает во всех случаях, потому что они не перевернули оставшиеся части первоначальных списков. Если у нас есть list1 = [1, 2, 3, 5, 9, 11, 13, 17]
и list2 = [6, 7, 12, 15]
, то их решение даст [5, 3, 2, 1, 6, 7, 9, 11, 12, 13, 15, 17]
там, где мы хотим [1, 2, 3, 5, 6, 7, 9, 11, 12, 13, 15, 17]
.