Guida a Python - Corso base - Capitolo 3: le liste
Capitolo 3: Tipi di dati: le liste.
Una lista è un insieme ordinato (nel senso che ogni elemento ha un indice, un posto) di elementi eterogenei.
Le liste vengono create assegnando, ad una variabile, un insieme di valori (anche nessuno: lista vuota) separati da virgole e racchiusi tra parentesi quadre:
>>> miaLista = ['a', 6, 'ciao', 5] >>> print miaLista ['a', 6, 'ciao', 5] >>>
Il primo indice di una lista ha posto 0, mentre è possibile accedere all'ultimo elemento di una lista con -1, al penultimo con -2 e così via:
>>> miaLista = [1, 2, 3, 4, 5] >>> miaLista[0] 1 >>> miaLista[-1] 5 >>> miaLista[-2] 4 >>>
Qualunque cosa può far parte di una lista, anche un'altra lista:
>>> miaLista = [4, 'ciao'] >>> miaLista2 = [2, miaLista, 'bravo'] >>> print miaLista2 [2, [4, 'ciao'], 'bravo'] >>> miaLista2[1] [4, 'ciao'] >>>
Come avviene con altri oggetti iterabili, con le liste è possibile utilizzare la tecnica dello slicing, ed anzi è possibile anche modificare le liste con tale tecnica (a differenza delle stringhe, le liste NON sono immutabili):
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista[:3] ['ciao', 2, 1] >>> miaLista2 = miaLista[3:5] >>> print miaLista2 ['a', True] >>> miaLista[-3:] = [] # Assegno agli ultimi tre elementi della lista la lista vuota; in pratica, li cancello ! >>> print miaLista ['ciao', 2, 1, 'a'] >>>
Tramite lo slicing, poi, è possibile duplicare facilmente una lista:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista2 = miaLista[:] >>> print miaLista2 ['ciao', 2, 1, 'a', True, None, 'bye'] >>>
Ecco alcuni dei metodi messi a disposizione dall'oggetto list (le liste, appunto):
Consente di aggiungere l'elemento passato come parametro in coda alla lista che lo sta invocando.
Esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista.append("prova") >>> print miaLista ['ciao', 2, 1, 'a', True, None, 'bye', 'prova'] >>>
Inserisce un dato elemento in una posizione specificata, spostando gli altri elementi (non sovrascrive elementi esistenti).
Esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista.insert(3, False) >>> print miaLista ['ciao', 2, 1, False, 'a', True, None, 'bye'] >>>
Come append, ma per le liste: accetta come parametro una lista, ed effettua una "fusione" tra le due, aggiungendo gli elementi della seconda lista in coda alla prima.
Esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista2 = ["Hello", 4, False] >>> miaLista.extend(miaLista2) >>> print miaLista ['ciao', 2, 1, 'a', True, None, 'bye', 'Hello', 4, False] >>>
Rimuove, dalla lista che lo invoca, l'elemento posizionato nel posto indicato dal parametro passato a tale metodo.
Esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista.remove(2) >>> print miaLista ['ciao', 1, 'a', True, None, 'bye'] >>>
Restituisce il l'indice (il "posto") dell'elemento passato come parametro nella lista, se presente (posizione iniziale: 0); genera errore se l'elemento non è presente
Esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista.index(2) 1 >>> miaLista.index("hello") Traceback (most recent call last): File "<pyshell#199>", line 1, in <module> miaLista.index("hello") ValueError: list.index(x): x not in list >>>
Ordina (con criterio alfabetico e/o numerico crescente; None precede tutti) gli elementi contenuti in una lista.
Esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> print miaLista ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista.sort() >>> print miaLista [None, 1, True, 2, 'a', 'bye', 'ciao'] >>>
Inverte l'ordine degli elementi contenuti nella lista che lo invoca:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> print miaLista ['ciao', 2, 1, 'a', True, None, 'bye'] >>> miaLista.reverse() >>> print miaLista ['bye', None, True, 'a', 1, 2, 'ciao'] >>>
Sta per length (lunghezza), restituisce -sotto forma di numero intero, utilizzabile come variabile - il numero di elementi che compongono una lista; esempio:
>>> miaLista = ['ciao', 2, 1, 'a', True, None, 'bye'] >>> len(miaLista) 7 >>> lunghezza = len(miaLista) >>> print lunghezza 7 >>>
Conta il numero di occorrenze dell'elemento passato come parametro nella lista che lo invoca; attenzione: NON è ricorsivo, nel senso che non cercherà l'elemento passato come parametro in eventuali liste contenute all'interno della lista che lo invoca.
Esempio:
>>> miaLista = [1, 2, 3, 4] >>> miaLista.count(4) 1 >>> miaLista2 = [1, 2, miaLista] >>> miaLista2.count(3) 0 >>>
Questi sono solo i metodi principali dell'oggetto list; una trattazione completa, si rimanda alla documentazione ufficiale di Python.
|