next up previous contents
Next: e ovvero sommatorie e Up: Strutture dati disponibili in Previous: Stringhe   Indice

Liste

Quasi tutti i linguaggi riconoscono strutture dati definite gli array, vettori o matrici. Di solito gli array devono essere omogenei, cioè tutti gli elementi devono essere dello stesso tipo. In Python, si ha la struttura Lista che contiene un elenco di oggetti non necessariamente dello stesso tipo. Esempi di liste sono

>>> ecoRI = 'gaattc'
>>> bamHI = 'ggatcc'
>>> hindIII = 'aagctt'
>>> r_enzyme = [ ecoRI, bamHI, hindIII ]                      
>>> r_enzyme
['gaattc', 'ggatcc', 'aagctt']
>>> my_list=[100, 3.3, r_enzyme]
>>> my_list[1]
3.2999999999999998
>>> my_list[2]
['gaattc', 'ggatcc', 'aagctt']
>>> my_list[2][1] # lista di una lista
'ggatcc'
>>> len(my_list)
3
>>> len(my_list[2])
3
Una lista può contenere elementi non omogenei, come numeri interi (100), numeri reali (3.3) oppure altri oggetti (per esempio altre liste).
>>> type(my_list) # tipo di my_list
<type 'list'>
>>> type(my_list[1]) # tipo elemento 1 di my_list
<type 'float'>
>>> type(my_list[0]) # tipo elemento 0 di my_list
<type 'int'>
>>> type(my_list[2]) # tipo elemento 2 di my_list
<type 'list'>
A differenza delle stringhe le liste possono essere mutate direttamente, anche un gruppo di elementi alla volta come per esempio
>>> my_list
[100, 3.2999999999999998, ['gaattc', 'ggatcc', 'aagctt']]
>>> my_list[0:2] = [1, 12] # sostituisci gli elementi da 0 a 1 
>>> my_list
[1, 12, ['gaattc', 'ggatcc', 'aagctt']]
>>>
Si possono appendere elementi in coda ad una lista oppure inserire in una posizione particolare come
>>> my_list
[1, 12, ['gaattc', 'ggatcc', 'aagctt']]
>>> my_list.append('new') # appende in fondo
>>> my_list
[1, 12, ['gaattc', 'ggatcc', 'aagctt'], 'new']
>>> my_list.insert(2,'insert') #inserisce nella posizione 2
>>> my_list
[1, 12, 'insert', ['gaattc', 'ggatcc', 'aagctt'], 'new']
In precedenza abbiamo visto la funzione range che adesso sappiamo crea una lista
>>> range(3)
[0, 1, 2]
Altri modi per creare una lista sono
>>> range(10,20,2) # da 10 a 19 con step 2
[10, 12, 14, 16, 18]
>>> range(5,2,-1) # da 5 a 3 con step -1
[5, 4, 3]
>>> aa = "ALA TYR TRP SER".split() # da stringa a lista 
>>> aa
['ALA', 'TYR', 'TRP', 'SER']
>>> ",".join(aa) # ricrea una stringa separata da "," 
'ALA,TYR,TRP,SER'
>>> lst = list('atgatgcgcccacgtacga ') # da stringa a lista
>>> lst
['a', 't', 'g', 'a', 't', 'g', 'c', 'g', 'c', 'c', 'c', 'a', 'c', 'g',
't', 'a', 'c', 'g', 'a', ' ']
È inoltre possibile invertire l'ordine degli elementi di una lista con
>>> lst.reverse() # inverti l'ordine
>>> lst
[' ', 'a', 'g', 'c', 'a', 't', 'g', 'c', 'a', 'c', 'c', 'c', 'g', 'c', 
'g', 't', 'a', 'g', 't', 'a']
Alri metodi utili disponibili per le liste sono append che appende in fondo alla lista un oggetto, sort che ordina la lista, pop che estrae l'ultimo elemento della lista
>>> lst=[1,2,3] # crea la lista
>>> lst.append(1.3) # = lst.insert(len(lst),1.3)
>>> lst
[1, 2, 3, 1.3]
>>> lst.sort() # ordina la lista
>>> lst
[1, 1.3, 2, 3]
>>> last=lst.pop() # estrai l'ultimo elemento
>>> last
3
>>> lst
[1, 1.3, 2]



Subsections
next up previous contents
Next: e ovvero sommatorie e Up: Strutture dati disponibili in Previous: Stringhe   Indice
2004-11-02