dev-notes/Python/Standard Library/collections.md

79 lines
2.7 KiB
Markdown
Raw Normal View History

2021-01-31 11:05:37 +01:00
# Collections Module
```py
# COUNTER()
# sottoclasse dizionario per contare oggetti hash-abili
from collections import Counter
Counter(sequenza) # -> oggetto Counter
2021-09-20 19:35:32 +02:00
# {item: num comprese in sequenza, ...}
2021-01-31 11:05:37 +01:00
var = Counter(sequenza)
var.most_common(n) # produce lista degli elementi più comuni (n più comuni)
sum(var.values()) # totale di tutti i conteggi
var.clear() #reset tutti i conteggi
list(var) # elenca elementi unici
set(var) # converte in un set
dict(var) # converte in un dizionario regolare
var.items() # converte in una lista di coppie (elemento, conteggio)
Counter(dict(list_of_pairs)) # converte da una lista di coppie
var.most_common[:-n-1:-1] # n elementi meno comuni
var += Counter() # rimuove zero e conteggi negativi
# DEFAULTDICT()
# oggetto simil-dizionario che come primo argomento prende un tipo di default
# defaultdict non solleverà mai un eccezione KeyError.
# le chiavi non esistenti ritornano un valore di default (default_factory)
from collections import defaultdict
var = defaultdict(default_factory)
var.popitem() # rimuove e restituisce primo elemento
var.popitem(last=True) # rimuove e restituisce ultimo elemento
# OREDERDDICT()
# sottoclasse dizionario che "ricorda" l'ordine in cui vengono inseriti i contenuti
# dizionari normali hanno ordinamento casuale
nome_dict = OrderedDict()
# OrderedDict con stessi elementi ma ordine diverso sono considerati diversi
# USERDICT()
# implementazione pura in pythondi una mappa che funziona come un normale dizionario.
# Designata per creare sottoclassi
UserDict.data # recipiente del contenuto di UserDict
# NAMEDTUPLE()
# ogni namedtuple è rappresentata dalla propria classe
from collections import namedtuple
NomeClasse = namedtuple(NomeClasse, parametri_separati_da_spazio)
var = NomeClasse(parametri)
var.attributo # accesso agli attributi
var[index] # accesso agli attributi
var._fields # accesso ad elenco attributi
var = classe._make(iterabile) # trasformain namedtuple
var._asdict() # restituisce oggetto OrderedDict a partire dalla namedtuple
# DEQUE()
# double ended queue (pronunciato "deck")
# lista modificabuile da entrambi i "lati"
from collections import deque
var = deque(iterabile, maxlen=num) # -> oggetto deque
var.append(item) # aggiunge item al fondo
var.appendleft(item) # aggiunge item all'inizio
var.clear() # rimuove tutti gli elementi
var.extend(iterabile) # aggiunge iterabile al fondo
var.extendleft(iterabile) # aggiunge iterabile all'inizio'
var.insert(index, item) # inserisce in posizione index
var.index(item, start, stop) # restituisce posizione di item
var.count(item)
var.pop()
var.popleft()
var.remove(valore)
var.reverse() # inverte ordine elementi
var.rotate(n) # sposta gli elementi di n step (dx se n > 0, sx se n < 0)
var.sort()
```