Do you need any help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2021-22 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

HW4 - ricerca all'interno di una lista

P
Pasqualino96 (1490 points)
3 17 27
asked Nov 11, 2020 in HW4 obbligatorio by Pasqualino96 (1,490 points)
recategorized Nov 11, 2020 by andrea.sterbini
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
175 views

2 Answers

Alessio Natalucci (3660 points)
7 10 23
answered Nov 11, 2020 by Alessio Natalucci (3,660 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)
3 17 27
commented Nov 11, 2020 by Pasqualino96 (1,490 points)
edited Nov 11, 2020 by Pasqualino96
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 (15190 points)
7 27 105
commented Nov 11, 2020 by twgever (15,190 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
answered Nov 11, 2020 by alessio_pannozzo (1,130 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.