SUPERCAT.DEV

Benvenut* sul mio blog

PYTHON

Richiami di Python: gli array

16-11-2022

Richiami per le liste, tuple, dizionari, set, frozenset

LISTE

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

Link w3schools

TUPLE

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 

Link w3schools

DIZIONARI

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"}

SET

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