Il prossimo esempio vi mostrerà moltissimi altri utilizzi
per le liste (non mi aspetto che proviate ogni esempio, ma
dovreste provarli finché non vi sentite a vostro agio nell'utilizzo
delle liste). Iniziamo:
E questo è l'output:
demolist = ['life',42, 'the universe', 6,'and',7]
print 'demolist = ',demolist
demolist.append('everything')
print "after 'everything' was appended demolist is now:"
print demolist
print 'len(demolist) =', len(demolist)
print 'demolist.index(42) =',demolist.index(42)
print 'demolist[1] =', demolist[1]
#Next we will loop through the list
c = 0
while c < len(demolist):
print 'demolist[',c,']=',demolist[c]
c = c + 1
del demolist[2]
print "After 'the universe' was removed demolist is now:"
print demolist
if 'life' in demolist:
print "'life' was found in demolist"
else:
print "'life' was not found in demolist"
if 'amoeba' in demolist:
print "'amoeba' was found in demolist"
if 'amoeba' not in demolist:
print "'amoeba' was not found in demolist"
demolist.sort()
print 'The sorted demolist is ',demolist
Questo esempio utilizza moltissime nuove funzioni. Ad esempio
guardate come potete stampare un'intera lista per poi aggiungere
nuovi elementi con la funzione
append. len
serve a contare quanti
elementi sono presenti nella lista: le entrate
(index) valide di una lista (cioè quelle richiamabili grazie
a nome_lista [numero dell'elemento])
vanno da 0 a len - 1. La funzione
index serve a sapere la posizione di un
elemento in una lista: nel caso esistano elementi con lo stesso
nome ritornerà la prima posizione dell'elemento. Osservate
come l'istruzione demolist.index (42)
ritorni il valore 1 e l'istruzione demolist [1]
ritorni il valore 42. La linea #Next we will loop
through the list è un semplice commento usato
per introdurre le prossime righe di codice:
demolist = ['life', 42, 'the universe', 6, 'and', 7]
after 'everything' was appended demolist is now:
['life', 42, 'the universe', 6, 'and', 7, 'everything']
len(demolist) = 7
demolist.index(42) = 1
demolist[1] = 42
demolist[ 0 ]= life
demolist[ 1 ]= 42
demolist[ 2 ]= the universe
demolist[ 3 ]= 6
demolist[ 4 ]= and
demolist[ 5 ]= 7
demolist[ 6 ]= everything
After 'the universe' was removed demolist is now:
['life', 42, 6, 'and', 7, 'everything']
'life' was found in demolist
'amoeba' was not found in demolist
The sorted demolist is [6, 7, 42, 'and', 'everything', 'life']
crea una variabile c
inizialmente di valore 0
che viene incrementata finché non raggiunge l'ultimo
elemento della lista. Nel frattempo l'istruzione
print stampa ogni elemento della lista.
c = 0
while c < len(demolist):
print 'demolist[',c,']=',demolist[c]
c = c + 1
L'istruzione del può essere usata per rimuovere un elemento dalla lista. Le linee successive utilizzano l'operatore index per sapere se un elemento è presente o meno nella lista.
La funzione sort ordina la lista ed è utile se avete bisogno di una lista ordinata dall'elemento più piccolo a quello più grande oppure in ordine alfabetico.
Riassumendo possiamo compiere le seguenti operazioni:
Tabella 8-2.
esempio | spiegazione |
---|---|
list[2] | accesso all'elemento 2 dell'indice |
list[2] = 3 | imposta a 3 l'elemento 2 dell'indice |
del list[2] | cancella l'elemento 2 dell'indice |
len(list) | restituisci la lunghezza della lista |
"value" in list | è vero se "value" è un elemento della lista |
"value" not in list | è vero se "value" non è un elemento della lista |
list.sort() | ordina la lista |
list.index("value") | restituisce l'indice dove viene trovata la prima occorrenza di "value" |
list.append("value") | aggiunge l'elemento "value" alla fine della lista |
Ecco una parte dell'output:menu_item = 0 list = [] while menu_item != 9: print "--------------------" print "1. Print the list" print "2. Add a name to the list" print "3. Remove a name from the list" print "4. Change an item in the list" print "9. Quit" menu_item = input("Pick an item from the menu: ") if menu_item == 1: current = 0 if len(list) > 0: while current < len(list): print current,". ",list[current] current = current + 1 else: print "List is empty" elif menu_item == 2: name = raw_input("Type in a name to add: ") list.append(name) elif menu_item == 3: del_name = raw_input("What name would you like to remove: ") if del_name in list: item_number = list.index(del_name) del list[item_number] else: print del_name," was not found" elif menu_item == 4: old_name = raw_input("What name would you like to change: ") if old_name in list: item_number = list.index(old_name) new_name = raw_input("What is the new name: ") list[item_number] = new_name else: print old_name," was not found" print "Goodbye"
E' un programma abbastanza lungo, diamo un'occhiata al codice sorgente per capirlo meglio. La linea list = [] crea una variabile list senza elementi al suo interno. La prossima linea importante è while menu_item != 9: . Questa linea inizia un ciclo che permette di ottenere il menu di questo programma. Le linee seguenti del programma visualizzano un menu per decidere quale parte del programma eseguire.-------------------- 1. Print the list 2. Add a name to the list 3. Remove a name from the list 4. Change an item in the list 9. Quit Pick an item from the menu: 2 Type in a name to add: Jack Pick an item from the menu: 2 Type in a name to add: Jill Pick an item from the menu: 1 0 . Jack 1 . Jill Pick an item from the menu: 3 What name would you like to remove: Jack Pick an item from the menu: 4 What name would you like to change: Jill What is the new name: Jill Peters Pick an item from the menu: 1 0 . Jill Peters Pick an item from the menu: 9 Goodbye
Poche linee più sotto appare l'istruzione
list.append(name) che aggiunge un
elemento alla fine della lista. Saltate giù di un'altro paio di linee
e osservate questa sezione di codice:
Qui la funzione index viene utilizzata
per trovare l'indice dell'elemento richiesto per poi utilizzarlo
nella sua cancellazione. del list [item_number]
viene utilizzato appunto per rimuovere l'elemento.item_number = list.index(del_name)
del list[item_number]