Richiami di Python: gli array
16-11-2022
Richiami per le liste, tuple, dizionari, set, frozenset
PYTHON
16-11-2022
Richiami per le liste, tuple, dizionari, set, frozenset
E' una sequenza mutabile
myList = []
myList = [10, 20, 30]
myList = list()
mylist = [10, 'python', True] # Può avere tipi multipli
myList[1] # 20
myList[-1] # 30
myList = [[10, 20, 30], [40, 50, 60]] # Liste multiple
myList[1][1] # 50
myList = [10, 20, 30, 40, 50]
myList[:2] # Slice [10, 20]
myList[2:4] # Slice [30, 40] l'ultimo indice è escluso
len(myList) # Lunghezza
myList = [10, 20, 30]
myList.insert(2, 50) # Aggiungi alla posizione 2, 50 -> [10, 20, 50, 30]
myList.insert(3, 50) # In questo caso inserisce in coda
myList.append(50) # Stessa cosa
del myList[1] # Cancella elemento 1 dalla lista [10, 30]
10 in myList # 10 è presente nella lista? -> True
myList = [10, 20, 30]
copia = myList
copia[1] = 50 # La copia è lo stesso oggetto per cui cambia anche myList
copia = myList.copy() # Qua mi fa una copia distinta dall'originale per cui una modifica non avrà effetto sull'originale
E' una sequenza immutabile, sono oggetti di un'instanza tuple
Più efficiente nell'esecuzione rispetto a una lista
frutti = ()
frutti = tuple()
frutti = 'mela', 'pera', 'banana'
frutti = ('mela', 'pera', 'banana')
m, p, b = frutti # tuple unpacking (spacchettamento)
m # 'mela'
x, y = (4, 5, 6) # errore, il numero di variabili deve corrispondere
t1 = (1, 2)
t2 = (3, 4)
myList = [t1, t2] # creo una lista con le due tuple -> [(1, 2), (3, 4)]
myList.append((5, 6)) # aggiungo alla lista un'altra tupla
Come una lista ma l'ordine non è definito (non è una sequenza) E ha key, value key non modificabile value può essere modificabile
myDict = {}
myDict = dict()
myDict = {
"primo": 10,
"secondo": 20,
"terzo": 30
}
d = {10: "a", 20: "b"} # le chiavi possono essere anche così
myDict["quarto"] = 40
del myDict["secondo"] # per eliminare un elemento
myDict.clear() # per eliminare tutti gli elementi
"terzo" in myDict # verificare la presenza di una chiave -> True
copia = myDict.copy() # per fare una copia separata dall'originale come nella list
# se voglio unire due dizionari
d1 = {10: "a", 20: "b"}
d2 = {30: "c"}
l1 = d1.items()
type(l1) # class<dict_items>
l1 # dict_items([(10, 'a'), (20, 'b')]) -> una lista con delle tuple con le chiavi valori
l2 = d2.items()
d3 = dict(l1) # ricreo il dict {10: "a", 20: "b"}
d3.update(dict(l2)) # aggiunge le chiavi/valori -> {10: "a", 20: "b", 30: "c"}
E' un insieme come un dizionario in cui eliminiamo i valori e teniamo le chiavi Si possono usare tutte le operazioni che ci sono in matematica degli insiemi E' un oggetto mutabile
mySet = set()
mySet = set([10, 20, 30, 40])
mySet = {10, 20, 30, 40} # un dict senza valori
mySet.add(10) # se il valore è già presente non lo aggiunge
30 in mySet # appartiene all'insieme? -> True
m1 = {10, 20, 30, 40}
m2 = {30, 40, 50, 60}
m1 & m2 # intersezione (compaiono nei due insiemi) -> {30, 40}
m1 | m2 # unione -> {10, 20, 30, 40, 50, 60}
m1 - m2 # differenza (nel primo insieme ma non nel secondo) -> {10, 20}
m1 ^ m2 # Or esclusivo XOR (appartiene al primo e al secondo ma non ha entrambi) -> {10, 20, 50, 60}
Esistono anche degli insiemi immutabili i frozenset