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
Strumenti personali