Anteprima
Vedrai una selezione di 3 pagine su 6
 Informatica - Appunti liste Pag. 1  Informatica - Appunti liste Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
 Informatica - Appunti liste Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

DATI STRUTTURATI: LE LISTE

➢ Tipi di dati semplici: float, interi bool (e stringhe)

o Siamo vincolati alla rappresentazione del singolo dato codificato in un oggetto

puntato da una variabile

o Es. se dobbiamo calcolare una distanza, abbianmo bisogno di una coppia di

coordinate x,y -> aumento variabili e oggetti -> difficile da gestire in un programma

con dati semplici es interi (100 misure -> 200 variabili)

o Serve un contenitore che contiene tutte le variabili di quel dato

o Es. stringa raggruppa tanti caratteri in una stringa

➢ Phyton offre però anche tipi di dati strutturati

o Composto d avalori che sono a loro volta collezioni o sequenze di valori piu semplici

Linguaggio macchina di alto livello offrono i tipi di dato strutturati x aumentare l’espressività e la

facilità con cui scrivere programmi complessi

o Es. scrivere nomi e cognomi degli studenti -> servirebbero 2 variabili per nome e

cognome quindi..

➢ Tipi di dato strutturati -> tre vantaggi:

o Unico puntatore x accedere alla collezione di dati

o Operazoni sulla collezione di dati (es media, varianza ordinamento)

o In phyton i tipi di dato strutturati sono mutabili

▪ I dati semplici sono immutabili

▪ La stringa pero è sempre immutabile anche se strutturato

LISTA: sequenza ordinata di valori ordinati divisi

da virgola racchiuse in [ ]:

1- per definirla serve la [ ] con virgola tra i valori

che sono ordinati

2- ogni elemento può essere di tipo diverso (float,

int bool -> si possono mischiare)

3- ci puo essere una lista vuota

OPERAZIONI SULLE LISTE: solo tra tipi compatibili (elementi dello stesso tipo)

1)come nelle stringhe

3) + = concatenazione come in stringhe

4) in e not in: cercare un elemento in una

lista, permette quindi di verificare

l’assenza o la presenza di un valore nella

lista

5) != o == : diverso o uguale -> se nella

medesima posizione ci sono gli stessi

identici elementi e se hanno la stessa

lunghezza (es. se in posizione poizione 2 in lista 1 c’è 3, e in ista 2 ci deve essere 3)

➢ Lista 1= [1,2,3] e lista 2 = [2,3,4]

o >>> lista1==lista2 -> False

o >>> [1,2,4,] == [2,3,4] (posso scriverlo anche cosi, non deve essere per forza

un’espressione)

o >>> [1,2,3] ==lista2 posso scrivere anche così

INDICIZZAZIONE

- Lista[indice] = a quella della stringa

- Differenza:

o Stringa: prendo un carattere contenuto nella stringa

o Caraattere compare nella parrte destra es. var= lista [indici]

o Lista: lista[indice] = nuovo valore -> liste sono mutabili -> ce anche a sinistra cosa che

non posso fare sulla stringa

Esempi: -se chiedo type(values[2])

chiedo il valore del dato

assoicato a un elemento in

posizione 2 -> intero

-se chiedo type(values)=list

SLICING -> SOTTOLISTE

Come nelle stringhe -> prendo

pezzi della lista

Il CONFRONTO è SUI VALORI della lista 1- chiedo l’id degli oggetti associati alle

3 variabili -> dovrebbero essere tutte

diverse

2- 3 variabili x, y, z che puntano ai loro

elementi:

a. Phyton associa alla lista gli elementi

1,2,3 con indicizzazione a ogni

elemento puntato da x

b. Phyton -> realizza che gli oggetti

1,2,3 li ha gia creati -> crea solo la variabile y e l’oggetto lista associato a y e

punta direttamete a 1,2,3 che gia esistono -> in questo caso l’indicizzazione è la

stessa per x e y

c. Per z vale lo stesso ma con indicizzazione differente da x e y infatti -> z=[2,3,1]

3- >>> x== y -> True perche sono uguali, con stessi elementi, stesse posizioni e stessa

lunghezza

4- >>> y== z -> False

5- >>> id(x[0], id(y[0], id(z[2]) -> hanno tutti lo stesso id perche corrispondono tutti

all’elemento 1

➢ Esempi di in e not in:

➢ Concatenzione: lista1+lista2 = lista1lista2 -> ordinato -> prima elementi lista 1 poi elementi

lista 2

o X = [1,2,3] y= [2,3,4]

o Z= x+y = [1,2,3,2,3,4] -> ci sono 2 elementi 2 -> hanno però un indice diverso

▪ Es. in stringhe: “mamma” -> la m compare 3 volte ma non è un problema

• Lo stesso vale per le liste – un elemento puo comparire piu volte

perchè cio che importa è il loro ordine, quindi la loro posizione

(indice)

o Le liste di partenza però non cambiano, sono sempre x e y, mentre a z ho associato

la lista1+lista2

o esempio

FUNZIONI BUILT-IN 1- len(lista) -> lunghezza della lista

-> Deve ricevere un oggetto di tipo

SEQUENZA -> collezione ordinate di ogg

-Vale come per le stringhe

2- min e max (lista)

- Se solo numeri -> riporta il piu

piccolo o grande

- Se carattere -> ordinamento

lessicografico

- Num e stringhe -> ERRORE

3- range(val) -> valore deve esser num intero positivo <- es.

- Puo essere trasformato in una lista [0,1......a-1] se a>0

- Dato un valore -> puo struire una lista da [0 a val-1]

Osservazione:

➔ Lista ‘ordinata’ è diverso dall’ordinamento aritmetico

➔ Ordinata vuol dire che ad ogni elemento è associato un indice a partire dall’indice 0 (indici =

posizione dell’elemento nella lista)

MUTABILITA DELLA LISTA: - 32 ind0

- 54 ind1

- 67 indice 2

1. Sono stati creati 3 ogg interi e 1 ogg lista -> 32,54,67 e l’oggetto lista ptr

2. >>> id(values) -> chiedo id dell’oggetto lista a cui punta values (variabile)

3. >>>values[1] -> 54

➢ MUTABILITA

o Associo values[1] a un nuovo valore

▪ >>>values[1]= 65.5

▪ Di conseguenza si crea un nuovo oggetto 65.5 a cui punterà l’oggetto lista

o Se chiedo values[1] non sara piu 54 ma sara il nuovo valore 65.5

o 54 viene cancellato -> non è piu accessibile, non esiste piu

o La lista quindi è MUTABILE

o L’id del values cambiera di conseguenza

1. >>> x=values[2] = 67

2. >>>values[2] = 10

a. L’oggetto 67 non viene eliminato perche values[2] viene associato a x

b. Mentre values[2] viene associato ad un nuovo oggetto che è 10 k

➢ Variabile è associata alla lista non all’oggetto stesso!!

➢ >>> x=[32,54,67]

➢ >>>id(x)

➢ >>>> y=x -> assegnamento -> associo la nuova variabile y a x che è associata alla lista

o Y quindi come x è associato allo stesso oggetto lista di x

▪ Non si crea un nuovo oggetto lista perchè è la stessa

Dettagli
Publisher
A.A. 2019-2020
6 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher danyconti01 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Zani Maurizio.