Vai al contenuto

Ti sono utili questi appunti? Sostieni AppuntiFacili con una piccola donazione.

Dona con PayPal

List

Dennis Turco 2 min di lettura Intermedio
  • #python
  • #programmazione
  • #list
  • #array
In questa lezione

1. Introduzione alle Liste in Python

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.

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

2. Caratteristiche delle Liste in Python

  1. Ordinamento: Gli elementi sono ordinati in base alla posizione, e possiamo accedervi tramite indice.
  2. Mutabilità: Le liste sono mutabili, quindi possiamo modificarne il contenuto dopo la creazione.
  3. Tipi diversi: Una lista può contenere tipi diversi di dati, inclusi numeri, stringhe, e persino altre liste.

3. Funzioni principali

3.1 Creazione di una lista

# Lista vuota
lista = []

# Lista con valori
lista = [1, 2, 3]

# Lista con valori ripetuti
lista = [0] * 10  # lista di 10 elementi con valore 0

3.2 Aggiungere elementi

  • append(x): Aggiunge x alla fine della lista.
  • insert(i, x): Inserisce x nella posizione i.
  • 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]

3.3 Rimuovere elementi

  • remove(x): Rimuove la prima occorrenza di x.
  • pop(i): Rimuove l’elemento nella posizione i.
  • 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()  # -> []

3.4 Ricerca di elementi

  • index(x[, start[, end]]): Restituisce l’indice della prima occorrenza di x.
  • count(x): Restituisce il numero di occorrenze di x.
lista = [1, 2, 3]
lista.index(1)  # -> 0
lista.count(3)  # -> 1

3.5 Ordinamento e inversione

  • sort(key=None, reverse=False): Ordina la lista in ordine crescente.
  • sorted(lista): Restituisce una copia ordinata della lista senza modificarla.
  • reverse(): Inverte l’ordine degli elementi nella lista.
lista = [2, 1, 3]
sorted(lista)  # -> [1, 2, 3]

lista = [2, 1, 3]
lista.reverse()  # -> [3, 1, 2]

lista = [2, 1, 3]
lista.sort(reverse=False)  # -> [1, 2, 3]

3.6 Operazioni di aggregazione

  • Lunghezza: len(lista)
  • Somma: sum(lista)
  • Minimo e Massimo: min(lista) e max(lista)
lista = [2, 1, 3]
len(lista)  # -> 3
sum(lista)  # -> 6
min(lista)  # -> 1
max(lista)  # -> 3

3.7 Copiare una lista

  • copy(): Restituisce una copia superficiale.
  • list(lista): Crea una copia della lista originale.
lista = [2, 1, 3]
lista.copy()  # -> [2, 1, 3]
list(lista)   # -> [2, 1, 3]

3.8 Comprensione delle liste

[x**2 for x in range(10)]  # genera i quadrati dei numeri da 0 a 9

3.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

3.10 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]

3.11 Accedere agli elementi

  • lista[i]: Accede all’elemento alla posizione i.
  • lista[start:end:step]: Slicing per ottenere un sottoinsieme della lista.
lista = [2, 1, 3]
lista[0]       # -> 2
lista[0:2]     # -> [2, 1]

4. Algoritmi principali

4.1 Popolamento lista con random

import random

lista = [0] * 10
for i in range(len(lista)):
    lista[i] = random.randint(0, 9)

print(lista)

4.2 Ricerca duplicati in una lista

lista = [1, 2, 4, 0, 1, 2]
duplicati = []

for i in range(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

4.3 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

4.4 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