Liste
1️⃣ Introduzione alle Liste in Python
graph LR
%% Definizione degli elementi della lista con indice e dato
A0["Indice: 0 | Dato: A"]
A1["Indice: 1 | Dato: B"]
A2["Indice: 2 | Dato: C"]
%% Collegamenti tra gli elementi della lista
A0 --> A1
A1 --> A2
%% Nodo Lista che punta al primo elemento
Lista(Lista)
Lista --> A0
Le liste in Python sono una struttura dati fondamentale, poiché consentono di memorizzare una sequenza ordinata di elementi. Grazie alla loro mutabilità e versatilità, le liste permettono di raccogliere e manipolare dati in molti modi utili. Inoltre, Python offre diverse funzioni e metodi per creare, modificare e lavorare con le liste.
2️⃣ Caratteristiche delle Liste in Python
- Ordinamento: Gli elementi sono ordinati in base alla posizione, e possiamo accedervi tramite indice.
- Mutabilità: Le liste sono mutabili, quindi possiamo modificarne il contenuto dopo la creazione.
- Tipi diversi: Una lista può contenere tipi diversi di dati, inclusi numeri, stringhe, e persino altre liste.
3️⃣ Funzioni principali
Creazione di una lista
- Creare una lista vuota:
lista = []
- Creare una lista con valori:
lista = [1, 2, 3]
- Creare una lista con valori ripetuti:
lista = [0] * 10
, che genera una lista di 10 elementi con il valore0
.
Aggiungere elementi
append(x)
: Aggiungex
alla fine della lista.
insert(i, x)
: Inseriscex
nella posizionei
.
extend(iterable)
: Aggiunge tutti gli elementi di un altro iterabile.
lista = [1, 2, 3]
lista.append(5) # -> [1, 2, 3, 5]
lista = [1, 2, 3]
lista.insert(1, 10) # -> [1, 10, 2, 3]
lista = [1, 2, 3]
lista.extend([4, 5, 6]) # -> [1, 2, 3, 4, 5, 6]
Rimuovere elementi
remove(x)
: Rimuove la prima occorrenza dix
.
pop(i)
: Rimuove l'elemento nella posizionei
.
clear()
: Svuota la lista.
lista = [1, 2, 1, 3, 1]
lista.remove(1) # -> [2, 1, 3, 1]
lista = [1, 2, 1, 3, 1]
lista.pop(2) # -> 1, [1, 2, 3, 1]
lista = [1, 2, 1, 3, 1]
lista.clear() # -> []
Ricerca di elementi
index(x[, start[, end]])
: Restituisce l'indice della prima occorrenza dix
nella lista, cercando opzionalmente trastart
eend
. Solleva un errore sex
non è presente.
count(x)
: Restituisce il numero di occorrenze dix
nella lista.
lista = [1, 2, 3]
lista.index(1) # -> 2
lista.count(3) # -> 1
Ordinamento e inversione
sort(key=None, reverse=False)
: Ordina gli elementi della lista in ordine crescente. Usa l'opzionereverse=True
per ordinare in ordine decrescente. Può accettare una funzione comekey
per personalizzare l'ordinamento.
sorted(lista)
: Ritorna una copia ordinata della lista senza modificarla (funzione globale).
reverse()
: Inverte l'ordine degli elementi nella lista.
lista = [2, 1, 3]
sorted(lista) # -> [2, 1, 3]
lista = [2, 1, 3]
lista.reverse() # -> [3, 1, 2]
lista = [2, 1, 3]
lista.sort(reverse=False) # -> [1, 2, 3]
Operazioni di aggregazione
- Lunghezza:
len(lista)
restituisce il numero di elementi.
- Somma:
sum(lista)
(per liste numeriche).
- Minimo e Massimo:
min(lista)
emax(lista)
.
lista = [2, 1, 3]
len(lista) # -> 3
sum(lista) # -> 2 + 1 + 3 = 6
min(lista) # -> 1
max(lista) # -> 3
Copiare una lista
copy()
: Restituisce una copia superficiale della lista.
list(lista)
: Crea una copia della lista originale.
lista = [2, 1, 3]
copy() # -> [2, 1, 3]
list(lista) # -> [2, 1, 3]
Comprensione delle liste
- List comprehension: Una sintassi concisa per creare liste filtrate o modificate.
[x**2 for x in range(10)] # Genera i quadrati dei numeri da 0 a 9
Altre funzioni utili
in
: Verifica se un elemento è presente nella lista.
not in
: Verifica se un elemento non è presente nella lista.
lista = [2, 1, 3]
3 in lista # -> True
1 not in lista # -> False
Concatena e moltiplica liste
+
: Concatena due liste.
*
: Ripete la lista un certo numero di volte.
lista1 = [2, 1, 3]
lista2 = [0, 1, 2]
lista1 + lista2 # -> [2, 1, 3, 0, 1, 2]
Accedere agli elementi
lista[i]
: Accede all'elemento alla posizionei
(coni
che può essere negativo per contare dall'ultima posizione).
lista[start:end:step]
: Usa lo slicing per ottenere un sottoinsieme della lista specificando inizio, fine e passo.
lista = [2, 1, 3]
lista[0] # -> 2
lista[0] # -> 2
4️⃣ Algoritmi principali
Popolamento lista con random
Inizializza una lista di 10 elementi con valori casuali compresi tra 0 e 9. Infine la stampa a schermo.
import random
lista=[0] * 10
for i in range(0, len(lista)):
lista[i] = random.randint(0, 9)
print(lista)
Ricerca duplicati in una lista
Trova duplicati di una lista e li aggiunge ad una seconda lista. Infine stampa la lista dei duplicati a schermo.
lista = [1, 2, 4, 0, 1, 2]
duplicati = []
for i in range(0, len(lista)):
for j in range(i + 1, len(lista)):
if lista[i] == lista[j] and lista[i] not in duplicati:
duplicati.append(lista[i])
print(duplicati) # stampa la lista dei duplicati
Ordinamento lista con il bubble sort
lista = [1, 2, 4, 0, 1, 2]
for i in range(len(lista)):
for j in range(i + 1, len(lista) - 1):
if lista[j] > lista[j + 1]:
lista[j], lista[j + 1] = lista[j + 1], lista[j]
print(lista) # stampa la lista ordinata
Ricerca massimo senza usare max()
lista = [1, 2, 4, 0, 1, 2]
massimo = lista[0]
for i in range(len(lista)):
if lista[i] > massimo:
massimo = lista[i]
print(massimo) # stampa il massimo