Думаю, этот алгоритм будет немного ближе к тому, что вы имеете в виду:
- Здесь мы передаем индекс функции, которую вы уже создали.
- Затем мы увеличили бы этот индекс, используя (
-~index
или просто index + 1
).
def reverse(a, index=0):
if len(a) == 0:
return []
if len(a) == 1:
return a
if index == len(a) - 1:
return a
temp = a[0]
a[0] = a[-1]
a[-1] = temp
return reverse(a, index + 1)
print(reverse([1, 2, 3, 5, 6, 7, 8, 9]))
print(reverse([100, 90, -10, 1200, 1, 2, 3, 5, 6, 7, 8, 9]))
Три оператора, которые уже есть в вашем коде: гораздо больше «алгоритмов c» (на всех языках), чем при использовании Python подкачки (a, b = b, a
):
temp = a[0]
a[0] = a[-1]
a[-1] = temp
Вывод
[9, 2, 3, 5, 6, 7, 8, 1]
[9, 90, -10, 1200, 1, 2, 3, 5, 6, 7, 8, 100]