Domanda [Python]Le liste - A cosa servono,gli utilizzi e come si creano

Stato
Discussione chiusa ad ulteriori risposte.

xXShïñëgødXx

Utente Silver
10 Gennaio 2012
205
11
24
92
Ultima modifica:
Salve a tutti,ho deciso di scrivere qualcosa a riguardo sulle liste,più avanti forse scriverò qualcos'altro...
Bene! Spero di non fare errori (se così fosse vi chiedo di correggermi) e di essere comprensibile.
Cosa sono

Una lista è una struttura dati,possiamo considerarla come una collezione ordinata di oggetti,dove gli oggetti saranno gli elementi che inseriremo all'interno di essa.
Una lista è formata da un nome,i corrispettivi indici (che sono numerici) e gli elementi. Facciamo un piccolo esempio:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista = ["Dato 1", "Dato 2", "Dato 3"]



Le liste sono inoltre eterogenee,significa che possono contenere tipi di dato vari,ad esempio stringhe e interi.
Sì ma non ce ne facciamo granchè se non possiamo "interagire" con esse no? Si può tranquillamente accedere ad un dato listato scrivendo il nome della lista e un indice. L'indice deve corrispondere alla posizione del dato all'interno della lista,ovvero se io decido di accedere al Dato 2 che è il secondo elemento,dovrò fare così:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista[1] #Che come output restituirà il Dato 2



Attenzione! Gli indici delle liste sono zero based,significa che se vogliamo accedere ad un elemento,dovremo iniziare da 0! Quindi vediamola così:
Dato 1 = indice [0]
Dato 2 = indice [1]
Dato 3 = indice [2]
E così via...
Le liste possono essere iterate (utilizzo di un ciclo) per accedervi. Io vi farò un esempio con il ciclo while ed il ciclo for,quest'ultimo è forse più appropriato per il nostro utilizzo,oltre ad essere più conciso:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista = ["Dato 1", "Dato 2", "Dato 3"]
i = 0 #Però questa volta come indice useremo i al posto di un numero
while i < 3: #Questo è il ciclo while
print Nome_lista[i] #Stampo la lista con l'indice i
i = i + 1 #Come output avremo Dato 1,Dato 2,Dato 3,e la lista sarà stata iterata correttamente.



PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista = ["Dato 1", "Dato 2", "Dato 3"]
for Dati in Nome_lista: #Questo è il ciclo for
print(Dati) #L'output come nel ciclo while sono i 3 dati iterati.




Altra cosa da sapere (opzionalmente),è che liste sono dinamiche:infatti durante l'esecuzione del codice gli elementi delle liste possono cambiare,eliminarsi,aggiungersi...più avanti ce ne renderemo conto tramite alcune operazioni possibili.
Gli utilizzi delle liste possono essere molteplici...tra alcuni utilizzi importanti esiste l'implementazione dello stack,anche se servirebbero le classi;bisognerebbe iniziare con una lista contenente i dati da implementare e creare una classe nella quale verranno tolti o inseriti gli elementi della lista:facciamo un esempio.


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

class Stack:
def _init_(self):
self.Dati = [Dato1, Dato2] #Creo la classe Stack,e qui partiamo con l'implementare il tutto inizializzando con _init_,successivamente metto pronta la lista di dati.

def Push(self,Dato3):
self.Dati.append(Dato3) #Push serve per incrementare,qui appunto aggiungiamo con append (che tra l'altro è anche una funzione che all'interno di una lista aggiunge un elemento) il Dato 3.

def Pop(self):
return self.Dati.pop(Dato3) #Pop toglie l'ultimo elemento aggiunto,e lo ritorna con return (politica di tipo LIFO,secondo la quale l'ultimo dato ad entrare è il primo ad uscire

def Evuota(self):
return (self.Dati == []) #EVuota controlla che la lista sia vuota




Qualche operazione sulle liste
Ora vediamo un pò come possiamo "manipolare" gli elementi in una lista con diverse funzioni.
Per determinare la lunghezza di una lista:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

len(Nome_lista) #Se come sopra in questa lista abbiamo Dato 1,Dato 2 e Dato 3,l'output sarà 3.



Si possono concatenare due liste sommandole:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista = ["Dato 1", "Dato 2", "Dato 3"]
Seconda_lista = ["Dato 4", "Dato 5"]
Totale = Nome_lista + Seconda_lista
Totale #L'output saranno tutti i dati delle due liste raccolti insieme.



Posso moltiplicare più volte gli elementi di una lista (PS: non è possibile farlo con più di una lista in quanto Python ci darebbe errore):


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Lista_moltiplicata = Nome_lista * 2
Lista_moltiplicata #L'output sarà Dato 1,Dato 2 e Dato 3 ripetuti per 2 volte.



Aggiungere un elemento:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista.append("Dato 4")
Nome_lista #Ora insieme ai 3 dati,avremo anche Dato 4.



Togliere un elemento:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

del Nome_lista[1]
Nome_lista #Abbiamo tolto Dato 2 dalla lista.



Ottenere l'indice di un elemento dal nome dell'elemento:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista.index("Dato 1")
Nome_lista #L'output di index è 0.



Possiamo ordinare gli elementi:


PYTHON Code: Line Numbers: ON/OFF - Expand: ON/OFF

Nome_lista.sort()
Nome_lista #Ordina in ordine alfabetico (se non sbaglio )

Nome_lista.reverse()
Nome_lista #Ordina al contrario,quindi avremo come output Dato3,Dato 2 e Dato 1.



FINE

E con questo penso di aver finito,se ho dimenticato qualcosa di importante,se ho detto qualcosa di sbagliato riferite pure :) spero di essere stato di aiuto e di aver scritto una buona guida, ;) bye
Shinegod
PS:Fonte mia,guida scritta interamente da me.
 
  • Mi piace
Reazioni: Cryper
Stato
Discussione chiusa ad ulteriori risposte.