1
Il metodo reverse() risolve il problema
lista = [1, 9, 2, 8]
lista.reverse()
2
Scambia
- primo e ultimo
- secondo e penultimo
- …
Utilizza due “puntatori” al primo e all’ultimo elemento
- p1 = 0, 1, 2, …
- p2 = n-1, n-2, …
n = len(lista)
for p1 in range(n):
p2 = n-1-p1
temp = lista[p1]
lista[p1] = lista[p2]
lista[p2] = temp
Attenzione: non funziona!
3
Si scambiano gli elementi fino a metà con quelli della seconda metà
n = len(lista)
for p1 in range(n//2):
p2 = n-1-p1
temp = lista[p1]
lista[p1] = lista[p2]
lista[p2] = temp
4
Più semplice
n = len(lista)
p1 = 0 # posizione primo elemento
p2 = n-1 # posizione ultimo elemento
while(p1 < p2): # se sono ancora "lontani"
temp = lista[p1] # scambia i due elementi
lista[p1] = lista[p2]
lista[p2] = temp
p1 += 1 # scala le posizioni
p2 -= 1