Libreria
Liste, dizionari e funzioni
Ordinare, filtrare, trasformare e raggruppare liste e dizionari.
Funzioni 10
mappa(lista, funzione)#
Una nuova lista con la funzione applicata a ogni elemento.
stampa(mappa([1, 2, 3], funzione (x) restituisci x * 10 fine))[10, 20, 30]
filtra(lista, funzione)#
Una nuova lista con solo gli elementi per cui la funzione dà vero.
stampa(filtra([5, 12, 8, 20], funzione (x) restituisci x > 10 fine))[12, 20]
riduci(lista, funzione, iniziale)#
Combina tutti gli elementi in un solo valore.
La funzione riceve il risultato "fin qui" e l'elemento successivo.
stampa(riduci([1, 2, 3, 4], funzione (tot, x) restituisci tot + x fine))10
variabile parole = ["mela", "pera", "mela", "kiwi"] # valore di provariduci(parole, f, iniziale = "")ordina_per(lista, funzione, decrescente = falso)#
Una nuova lista ordinata secondo la funzione.
La funzione dice "quanto vale" ogni elemento. A parità di valore l'ordine resta quello di prima.
stampa(ordina_per(["banana", "fico", "kiwi"], lunghezza))["fico", "kiwi", "banana"]
raggruppa_per(lista, funzione)#
Un dizionario che mette insieme gli elementi con lo stesso valore.
stampa(raggruppa_per([1, 2, 3, 4], funzione (x) restituisci x % 2 == 0 fine)){falso: [1, 3], vero: [2, 4]}conta_se(lista, funzione)#
Quanti elementi fanno dare vero alla funzione.
stampa(conta_se([18, 30, 24, 30], funzione (v) restituisci v == 30 fine))2
tutti(lista, funzione)#
vero se la funzione dà vero per tutti gli elementi.
Senza funzione controlla una lista di vero/falso. Una lista vuota dà vero.
variabile voti = [7, 8, 6, 9] # valore di provavariabile tutti = ["mela", "pera", "kiwi"] # valore di provatutti(voti, funzione (v) restituisci v >= 18 fine)almeno_uno(lista, funzione)#
vero se la funzione dà vero per almeno un elemento.
Una lista vuota dà falso.
variabile voti = [7, 8, 6, 9] # valore di provaalmeno_uno(voti, funzione (v) restituisci v == 30 fine)accoppia(lista1, lista2, ...)#
Mette insieme gli elementi nella stessa posizione.
Se le liste sono lunghe diverse si ferma alla più corta.
stampa(accoppia(["Ada", "Bruno"], [30, 28]))[["Ada", 30], ["Bruno", 28]]
enumera(lista, inizio = 0)#
Coppie [posizione, elemento] per ogni elemento.
stampa(enumera(["a", "b"]))[[0, "a"], [1, "b"]]
inizio = 1Metodi dei valori «lista» 8
Si chiamano con il punto: valore.aggiungi(…).
.aggiungi(x)#
Mette x in fondo alla lista.
variabile voti = [7, 8, 6, 9] # valore di provavoti.aggiungi(28).inserisci(indice, x)#
Mette x nella posizione indice, spostando in avanti gli altri.
variabile nomi = ["Ada", "Bruno", "Carla"] # valore di provanomi.inserisci(0, "Ada")variabile lista = [3, 1, 2] # valore di provalunghezza(lista).rimuovi(x)#
Toglie dalla lista il primo elemento uguale a x.
variabile frutti = ["mela", "pera", "kiwi"] # valore di provafrutti.rimuovi("pera")variabile lista = [3, 1, 2] # valore di provalista.estrai(0).estrai(indice = -1)#
Toglie dalla lista l'elemento in posizione indice e lo restituisce.
Senza indice estrae l'ultimo.
variabile pila = [1, 2, 3] # valore di provavariabile ultimo = pila.estrai().ordina(decrescente = falso)#
Mette in ordine la lista (dal più piccolo al più grande).
Gli elementi devono essere tutti numeri o tutti testi (i testi in ordine alfabetico).
variabile voti = [7, 8, 6, 9] # valore di provavoti.ordina()voti.ordina(decrescente = vero).inverti()#
Rovescia l'ordine degli elementi della lista.
l.inverti().trova(x)#
La posizione del primo elemento uguale a x, oppure nulla se non c'è.
stampa(["a", "b", "c"].trova("b"))1
.conta(x)#
Quante volte x compare nella lista.
stampa([30, 28, 30].conta(30))2
Metodi dei valori «dizionario» 6
Si chiamano con il punto: valore.chiavi(…).
.chiavi()#
La lista delle chiavi, nell'ordine in cui sono state aggiunte.
stampa({"nome": "Ada", "età": 36}.chiavi())["nome", "età"]
.valori()#
La lista dei valori.
stampa({"nome": "Ada", "età": 36}.valori())["Ada", 36]
.coppie()#
La lista delle coppie [chiave, valore].
variabile rubrica = {"Anna": "333 1234567", "Bruno": "347 7654321"} # valore di provaper ogni c in rubrica.coppie() fai stampa(c[0], c[1]) fineAnna 333 1234567 Bruno 347 7654321
.prendi(chiave, predefinito = nulla)#
Il valore della chiave, o predefinito se non c'è.
A differenza di rubrica["Anna"] non dà errore se la chiave manca.
variabile rubrica = {"Anna": "333 1234567", "Bruno": "347 7654321"} # valore di provarubrica.prendi("Anna", "sconosciuto").ha(chiave)#
vero se il dizionario contiene la chiave.
Si può scrivere anche "Anna" in rubrica.
variabile rubrica = {"Anna": "333 1234567", "Bruno": "347 7654321"} # valore di provase rubrica.ha("Anna") allora stampa(rubrica["Anna"]) fine333 1234567
.rimuovi(chiave)#
Toglie la chiave (e il suo valore) dal dizionario.
Se la chiave non c'è ricevi un ErroreChiave.
variabile rubrica = {"Anna": "333 1234567", "Bruno": "347 7654321"} # valore di provarubrica.rimuovi("Anna")