Programmazione in Python per laprofs.sci.univr.it/~farinelli/courses/python/slides/data... · 2016....
Transcript of Programmazione in Python per laprofs.sci.univr.it/~farinelli/courses/python/slides/data... · 2016....
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Programmazione in Python per la
bioinformatica
University of Verona
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Sommario
Liste
Insiemi
Dizionari
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
La struttura dati Lista
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Lista
Come si rappresenta una lista in python
Reminder: Lista collezione ordinata di elementiL = 〈a0, a1, · · · , an−1〉
La variabile strange_list è un puntatore alla locazione dimemoria che mantiene gli elementi della lista.
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Leggere gli elementi di una lista
Come leggere gli elementi di una lista
Gli elementi vanno da 0 a n − 1 (n = lunghezza lista)Posso leggere gli elementi di una lista tramite gli indici
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Modi�care gli elementi di una lista
Come modi�care gli elementi di una lista
Posso modi�care gli elementi di una lista tramite gli indici
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Attenzione al side e�ect!
Side e�ect sulle liste
Reminder: strange_list è un puntatore ad una lista
Posso avere side e�ect sulle stringhe ?
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Modi�care le stringhe
Non è possibile modi�care una stringa!
Le stringhe sono oggetti immutabili
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Liste e slicing
Slicing di una lista
Possiamo accedere ad un range di valori della listaPossiamo fare una copia della lista usando il range [:]
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Modi�care le Liste tramite slicing
modi�care parti di una lista
Possiamo modi�care un range di elementi
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Operazioni comuni sulle liste
Operazioni sulle liste
Concatenazione, built-in functions (i.e., len()) e operatore del
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Liste come oggetti
Metodi delle liste
Posso chiamare metodi sugli oggetti liste come per le stringhe
Per conoscere tutti i metodi delle liste digitare
help(list)
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Implementare una Pila usando le liste
Liste come Pile
Pila = Last In First Out
Posso usare i metodi append(elem) e pop() per realizzareuna pila tramite una lista
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Ordinare una lista
Modi per ordinare una lista
la funzione sorted(): ritorna una nuova lista
il metodo sort(): modi�ca l'oggetto di invocazione
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Liste e ordinamento
Quali liste posso ordinare
posso ordinare liste di elementi su cui sia de�nito un ordine
ma gli elementi devono essere dello confrontabili
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Tuple
Sequenza di elementi non mutabile
sequenza di valori separati dalla virgola
non sono mutabili
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Esercizi su liste
Eserc liste
Q1 data una lista di interi ed un intero stampare tutti glielementi presenti nella lista che sono strettamente minoridell'intero. [Hint: Usare il metodo delle liste index(v) pertrovare l'indice del valore v nella lista]. Scaricare emodi�care il �le eserc-liste-Q1.py [Sol: eserc-liste-Q1.sol]
Q2 risolvere l'esercizio precedente senza modi�care la listadata. Scaricare e modi�care il �le eserc-liste-Q2.py [Sol:eserc-liste-Q2.sol]
NOTA: NON USARE I CICLI
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Set
Collezione di elementi non ordinata
Non ci sono duplicati
Supportano le operazioni classiche su insiemi
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Operazioni su insiemi
Operazioni classiche su insiemi
Unione, Intersezione, Di�erenza
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Creare collezioni da altre collezioni
Usare le funzioni list() e set()
Possiamo creare una lista a partire da un insieme usando lafunzione list()
Possiamo creare una lista da una stringa con la stessafunzione
Possiamo creare una lista da una tupla con la stessafunzione
Discorso simile per gli insiemi
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Esercisi Insiemi
Eserc set
Q1 data una lista ordinata rimuovere tutti i doppioni estampare il risultato eserc-set-Q1.py [Sol: eserc-set-Q1.sol]
Q2 date due liste stampare l'insieme degli elementi contenutiin entrambe le liste eserc-set-Q2.py [Sol: eserc-set-Q2.sol]
Q2 leggere una stinga da input e stampare l'insieme deicaratteri che formano la stringa eserc-set-Q3.py [Sol:eserc-set-Q3.sol]
NOTA: NON USARE I CICLI
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Dicionaries
Collezione non ordinata di coppie (chiave,valore)
Le chiavi sono uniche nel dizionario (non ci sono duplicati)
Chiavi: devono essere tipi immutabili (i.e., stinghe onumeri)
Valori: possono essere di qualsiasi tipo (i.e., list)
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Accedere ai valori di un dizionario
Indicizzare un dizionario
usare le parentesi quadre come per liste e stringhe
se chiave non presente abbiamo un errore
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Aggiornare i valori di un dizionario I
Modi�care un dizionario I
possiamo aggiungere o modi�care coppie usando leparentesi quadre
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Aggiornare i valori di un dizionario II
Modi�care un dizionario II
usare del per rimuovere una coppia indicizzando con lachiave
aggiungere piu' coppie in una sola istruzione
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Ottenere tutti gli elementi di un dizionario
Accedere tutti gli elementi
la funzone len() restituisce la lunghezza
keys() restituisce le chiavi, values() restituisce i valori
Programmazionein Python
per la bioin-formatica
Liste
Insiemi
Dizionari
Esercisi Dizionari
Eserc dict
Q1 data una stringa composta da caratteri 'a','t','c','g' crearee stampare un dizionario che associ ciascuno dei 4 carattericon il suo numero di occorrenze. eserc-dict-Q1.py [Sol:eserc-dict-Q1.sol]
Q2 leggere una stringa da input e stampare il numero dioccorrenze del carattere piu' frequente considerando solo icaratteri 'a','t','c' e 'g'. eserc-dict-Q2.py [Sol:eserc-dict-Q2.sol]
NOTA: NON USARE I CICLI