Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

ciclo for in lista

d
davidebelcastro (1160 points)
10 37 41
in Programmare in Python by (1.2k points)
qualcuno saprebbe dirmi come si fa un ciclo che analizza una lista al contrario, partendo dalla fine e arriva all'inizio?
500 views

5 Answers

f
fabrizio.alba (1150 points)
4 11 20
by (1.2k points)
Puoi usare il metodo reverse() delle liste...
e
eduard_lisnic (870 points)
0 4 11
by (870 points)
Oltre al metodo reverse() che ti ha consigliato il collega puoi usare le slices indicando [::-1] alla fine della lista e ciclare su quello.
g
giacomo_venturini (6680 points)
3 6 40
by (6.7k points)
Puoi usare range(len(lista)-1,-1, -1) questo partirà dall'ultimo elemento della lista e arriverà a 0 a passi di -1
1
1937764 (3520 points)
7 14 42
by (3.5k points)

Puoi usare le slice, quindi lista[::-1]

Utile in quei casi dove ad esempio devi eliminare elementi mentre scorri la lista, oltre ovviamente a una richiesta esplicita di scorrerla al contrario

S
Silktrader (2550 points)
2 6 16
by (2.6k points)
edited by

Ci sono tre casi:

  1. se ti serve il nuovo ordine una sola volta, non vuoi mutare la lista originale e vuoi ottenere tutti gli elementi al contrario usi la slice notation sequence[::-1] — effettua nuova copia di tutta la lista
  2. se pensi di riusare la lista con elementi al contrario più di una volta, non ti serve la lista originale usa il metodo reverse() — riordina la lista "in-place" senza creare nuove copie
  3. se ti servono solo alcuni risultati della lista all'incontrario, possibilmente senza percorrerla tutta, allora preferisci reversed() — che ti permette di valutare solo gli elementi che ti interessano, "lazily", fino a quando vuoi tu