Programmazione in Python per laprofs.sci.univr.it/~farinelli/courses/python/slides/data... · 2016....

Post on 02-Sep-2020

9 views 0 download

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