Liste, tuple e dizionari Python
Da Hacknowledge.
Indice |
[modifica] Liste
Come abbiamo visto nella sezione riguardante i tipi di dato, le liste altro non sono che elenchi ordinati contenenti elementi eterogenei. Affronteremo ora le principali funzioni eseguibili con le liste, ovvero:append, count, extend, index, insert, pop, remove, reverse, sort. La sintassi di tutti questi comandi non varia mai, e precisamente:
oggetto.comando(Argomento se richiesto)
[modifica] Append
Il comando append serve ad aggiungere un elemento alla fine di una lista. Prende come argomento un oggetto, quello da inserire. Ad esempio:
lista = ['a', 'b', 'c', 'd', 'e'] lista.append('z')
cambierà la lista in:
lista ['a', 'b', 'c', 'd', 'e', 'z'] <source lang=python> lista.append(1) lista
aggiungerà appunto 1 alla lista:
['a', 'b', 'c', 'd', 'e', 'z', 1]
Come possiamo vedere, il metodo list.append(x) ci permette di aggiungere un qualsiasi elemento alla fine della lista, perfino un'altra lista:
lista = ['a', 'b', 'c', 'd', 'e'] x = [123] lista.append(x) lista ['a', 'b', 'c', 'd', 'e', [123]]
[modifica] Insert
Il metodo insert funziona in modo simile al metodo append, ma ci permette anche di inserire l'oggetto nella posizione voluta. Prende come argomenti due dati, la posizione in cui inserire l'oggetto e l'oggetto vero e proprio. Ad esempio:
lista = ['a', 'b', 'c', 'd', 'e'] lista.insert(0,'123') lista [123, 'a', 'b', 'c', 'd', 'e']
Come possiamo vedere, il primo dato rappresenta l'indice in cui inserire l'oggetto, mentre il secondo l'oggetto vero e proprio.
[modifica] Extend
Il metodo extend aggiunge una lista intera alla fine di un'altra lista. Se la definizione sembra simile a quella del metodo append, bisogna chiarire una cosa: il metodo extend aggiunge ciascun elemento della seconda lista nella lista principale, mentre il metodo append aggiunge l'intera lista alla fine della lista principale. Ad esempio:
lista = ['a', 'b', 'c', 'd', 'e'] lista2 = [1,2,3] lista.extend(lista2) lista ['a', 'b', 'c', 'd', 'e',1, 2, 3]
[modifica] Index
Il metodo index prende come argomento un oggetto, e ne ritorna la posizione nella lista, in questo modo:
lista = ['a', 'b', 'c', 'd', 'e'] lista.index('a') 1
[modifica] Count
Il metodo count prende un oggetto come argomento, conta il numero di volte in cui esso è presente nella lista e restituisce quest'ultimo valore. Ad esempio:
lista = ['a', 'b', 'c', 'd', 'e'] lista.count('a') 1
Se un elemento non è presente, il valore di ritorno sarà ovviamente 0:
lista = [1, 2, 3, 4, 5] lista.count(9) 0
Un particolare degno d'importanza è il fatto che count non controlla eventuali liste annidate all'interno della lista passata come argomento:
lista = [1, 2, 3, 4, 5, [8, 9]] lista.count(8) 0
[modifica] Pop
Il metodo pop ha un funzionamento piuttosto particolare, dato che accomuna l'estrazione alla rimozione. Può essere utilizzato sia con indice che senza; se viene utilizzato senza, estrae l'ultimo elemento della lista, cancellandolo da quest'ultima. Ad esempio:
lista = [1, 2, 3, 4, 5] lista.pop() '5' lista [1, 2 3, 4]
Se utilizzato invece con un indice, estrae l'elemento in quella posizione e contemporaneamente lo cancella dalla lista, in questo modo:
lista= [1, 2, 3, 4, 5] lista.pop(0) '1' lista [2, 3, 4, 5]
[modifica] Remove
Il metodo remove funziona in modo opposto al metodo insert, poiché elimina dalla lista l'elemento nella posizione passata come argomento. Ad esempio:
lista = [1, 2, 3, 4, 5] lista.remove(0) lista [2, 3, 4, 5] === Reverse === Il metodo ''reverse'' serve molto semplicemente a rovesciare l'ordine di una stringa, ovvero: <source lang=python> lista = [1, 2, 3, 4, 5] lista.reverse() lista [5, 4, 3, 2, 1]
[modifica] Sort
Il metodo sort dispone in ordine numerico/alfabetico gli elementi della lista. Se sono presetni sia numeri che lettere, i numeri avranno la precedenza. Non richiede argomenti; ad esempio:
lista = [3, 5, 1, 4, 'c', 'a', 'z'] lista.sort() lista [1, 3, 4, 5, 'a', 'c', 'z']
[modifica] Dizionari
Come abbiamo spiegato prima, i dizionari sono array associativi, ed in quanto tali hanno un grande numero di metodi: clear, copy, fromkeys, get, has_key, iteritems, iterkeys, itervalues, keys, pop, popitem, setdefault, update, values. Qui affronteremo solo i più usati.
[modifica] Clear
Il metodo clear, come suggerisce il nome, cancella tutti gli elementi di un dizionario, in questo modo:
Dizionario = {'Uno':'One', 'Due':'Two'} Dizionario.clear() Dizionario {}
[modifica] Copy
Il metodo copy serve a copiare l'intero dizionario; è particolarmente utile se si vuole assegnare ad una variabile diversa il contenuto del dizionario. Ad esempio:
Dizionario = {'Uno':'One', 'Due':'Two'} Dizionario2 = Dizionario.copy() Dizionario = "La variabile dizionario viene trasformata in una stringa" Dizionario2 {'Uno':'One', 'Due':'Two'} Dizionario "La variabile dizionario viene trasformata in una stringa"
[modifica] Has_key
Il metodo has_key ci permette di sapere se una determinata chiave è presente nel dizionario. Ad esempio:
Dizionario = {'Uno':'One', 'Due':'Two'} Dizionario.has_key('Uno') True Dizionario.has_key('Tre') False
[modifica] Keys
Il metodo keys serve molto semplicemente ad elencare tutte le chiavi di un dizionario:
Dizionario = {'Uno':'One', 'Due':'Two'} Dizionario.keys() ['Uno', 'Due']
[modifica] Values
Il metodo values funziona in modo speculare al metodo keys, ovvero estrae tutti i valori di un dizionario, in questo modo:
Dizionario = {'Uno':'One', 'Due':'Two'} Dizionario.values() ['One', 'Two']
[modifica] Items
Il metodo items è una fusione dei metodi keys e values, poiché restituisce tutte le coppie chiavi-valori sotto forma di tuple:
Dizionario = {'Uno':'One', 'Due':'Two'} Dizionario.items() [('Uno':'One'), ('Due':'Two')]
[modifica] Tuple
Come abbiamo potuto vedere nella sezione dedicata ai tipi di dato, le tuple sono elenchi ordinati eterogenei che, a differenza delle liste, risultano immutabili. Proprio per questo motivo, sono totalmente prive di metodi. L'unica operazione attuabile su esse è la richiesta di appartenenza di un oggetto alla tupla; possiamo effetturla in questo modo:
tupla = ('a', 'b', 'c', 'd') 'a' in tupla True 1 in tupla False

