YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Italian subtitles

← cs101_unit3_26_p_index

pratica - p_index

Get Embed Code
5 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. Ci sono molti altri modi per definire 'find_element' .
  2. Vi farò vedere come ci sia un altro modo per avvantaggiarsi di un'altra operazione sulle liste
  3. che ancora non abbiamo introdotto, ma che rende molto più semplice scrivere 'find_element' .
  4. Questo metodo si chiama 'index()' .
  5. Il metodo 'index()' può essere invocato su una lista.
  6. Gli si passa un valore, ed il risultato sarà la posizione di quel valore nella lista.
  7. Questo metodo Python quindi risolve 'find_element' nel modo in cui vorremmo.
  8. La differenza rimane quando il valore passato non è nella lista.
  9. 'index()' non ritorna -1, ma ci segnala un errore.
  10. Vediamo cosa succede nell'interprete.
  11. Definisco una variabile 'p' e gli assegno la lista [0,1,2] .
  12. Se si invoca 'index()' per 'p' , passando il valore 2, avremo il risultato 2,
  13. che è la posizione in 'p' dove troviamo il valore '2'.
  14. Per il secondo esempio aggiungiamo più '2' nella lista,
  15. e vediamo che ci darà come risultato comunque il primo.
  16. Quindi il valore ritornato da 'index()' sarà sempre la prima occorrenza che troviamo nella lista.
  17. Adesso proviamo con un elemento che non è nella lista.
  18. Notiamo che invece di ricevere -1 , riceviamo un errore
  19. che dice che l'elemento che stiamo cercando non è nella lista.
  20. Quindi se vogliamo che 'find_element' abbia il comportamento richiesto,
  21. possiamo farlo uando 'index()' direttamente.
  22. Ci sono altri operatori per le liste che potrebbero essere di aiuto.
  23. Per ricapitolare il comportamento di 'index()' ,
  24. se il valore che passiamo è nella lista, il metodo ritorna la posizione della prima occorrenza di quel valore.
  25. Che è esattamente quello che vogliamo da 'find_element' .
  26. Il problema è quando il valore non è presente nella lista, il metodo produce un errore.
  27. C'è quindi un altro metodo che potrebbe tornare utile per permetterci di usare 'index()' ,
  28. e per molte altre cose, si tratta della parola chiave 'in' .
  29. La abbiamo già incontrata nel ciclo 'for' .
  30. Qui vediamo la stessa parola 'in' , ma che significa qualcosa di diverso.
  31. La sintassi prevede di avere un valore alla sinistra della parola 'in' seguito dalla lista.
  32. La sintassi risulta un po' strana dal resto delle cose che abbiamo visto in Python.
  33. Non sembra un richiamo di una procedura, ma è molto naturale per come corrisponde all'ordine logico.
  34. di come lo diremmo in inglese.
  35. Se abbiamo una cosa del tipo : "Is 3 in the list?"
  36. lo scriveremo in Python come '3 in p' .
  37. Vediamo come funziona dell'interprete.
  38. Ora stamperò il risultato di '3 in p' .
  39. 3 non è nella lista, quindi stamperà 'False' .
  40. Se cambio in '2 in p' ,
  41. avremo il valore 'True' .
  42. Quindi per ricapitolare il comportamento di 'in' ,
  43. se il valore è nella lista il prodotto è True .
  44. Altrimenti il prodotto è False.
  45. similmente, possiamo usare 'not in' .
  46. 'not in' ha significato opposto a 'in' .
  47. Se il valore NON è nella lista, il risultato sarà 'True' .
  48. Se il valore è nella lista, allora il risultato di 'not in list' sarà False.
  49. Il valore di 'not in list' è equivalente a dire "not value in list" .
  50. L'unica ragione per preferire 'not in' è che risulta più naturale in inglese
  51. che avere il 'not' tra il valore e 'in' .
  52. Ora per vedere di aver capito 'index()' e 'in' e 'not' nelle operazioni sulle liste,
  53. Voglio che proviate a definire 'find_element' di nuovo.
  54. Dovrà avere lo stesso identico comportamento di prima.
  55. Dovrà darci la posizione dell'elemento che stiamo cercando, se esiste,
  56. oppure -1 se non esiste nella lista.
  57. Questa volta invece di usare i cicli 'while' o 'for'
  58. utilizziamo 'index()' per definirla.