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

Do you need help?

HW4 - ricerca all'interno di una lista

P
Pasqualino96 (1490 points)
4 23 27
in HW4 obbligatorio by (1.5k points)
recategorized by
Ciao a tutti,

Ragazzi, volevo sapere se è possibile cercare un elemento all'interno di una lista andando indietro e non avanti, mi spiego meglio:  

13, 13, 14, 12, 10, 3, 3, 4, 13

dalla "pseudo lista" scritta sopra, prendendo in esame l'ultimo elemento (13) vorrei trovare l'indice del primo elemento uguale (in questo caso l'indice corrisponde a 1)

Esiste un metodo in grado di svolgere una cosa del genere?

Vi ringrazio in anticipo per un eventuale risposta
248 views

2 Answers

Alessio Natalucci (3660 points)
7 10 23
by (3.7k points)

Scorri la lista con range. Ad esempio:

for i in range(10, 1, -1):
  print (i)
Ti darà come output:
10
9
8
7
6
5
4
3
2
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
edited by
Edit

Non mi è chiaro, cerco di farmi capire meglio: prendendo una lista, voglio scorrerla partendo dalla fine ed arrivando al primo elemento uguale all'ultimo. Come posso fare?
twgever (17470 points)
8 29 105
by (17.5k points)
è esattamente quello che tu ha consigliato Alessio, se scorri con il range, puoi selezionare dei numeri da 10 a 1. in quel range, in particolare, 10 (il primo argomento) rappresenta il punto di partenza, 1 il punto di arrivo, e -1 l'incremento (che è di -1, perchè deve andare indietro.

Se usi i numeri che ti restituisce questo for come indice, hai fatto, infatti:

L=[12,34,56,78,98] (quindi len(L)==5, perchè sono 5 elementi)

for i in range(len(L),-1,-1)

    print (L[i])

questo ti stamperà prima 98, poi 78, poi 56 ecc.

se non ti funziona il range con -1 puoi provare a fare reversed(range(len(L))), ma dovrebbe funzionare già così
a
alessio_pannozzo (1130 points)
1 4 7
by (1.1k points)

L'unica soluzione è formulare un for che va :dalla lunghezza della lista a 0 procedendo all'indietro 

range(len(lista)-1,0,-1)

e quando trovi il valore che ti serve lo memorizzi in una variabile.
Altrimenti se parti dall'inizio, puoi usare lista.index(qualcosa, inizio, fine) ,precisando l'inizio e la fine.