Counter() è una sottoclasse di dict() contenuta nel modulo collections.
Fornisce un modo semplice per associare un contatore (un intero) a ogni chiave.
Inoltre le chiavi sono ordinate rispetto al contatore.
Costruttori
collections.Counter() |
Crea un contatore vuoto |
collections.Counter("arcobaleno") |
Crea un contatore con le lettere di una stringa |
collections.Counter(['red', 'green', 'red']) |
Crea un contatore con una lista di stringhe |
collections.Counter(red=100, green=150, blue=255) |
Crea un contatore con assegnazione dei valori alle chiavi |
collections.Counter(['red', 100), ('green', 150), ('blue', 255)]) |
Crea un contatore con una lista di coppie |
collections.Counter({'red': 100, 'green': 150, 'blue': 255}) |
Crea un contatore con i dati un dizionario |
... |
… |
Operatori
- x=c[‘red’], restituisce il contatore
- c[‘red’]=0, imposta il contatore
- del c[‘red’], elimina la chiave (e il contatore)
Funzioni / Metodi
L’oggetto Counter() può essere manipolato come un dict(), perché eredita i metodi di dict(), ma possiede nuovi metodi
c.clear() |
Elimina tutto il contenuto |
c.copy() |
Crea una copia |
c.elements() |
(Nuovo) Restituisce (come iteratore) gli elementi presenti ripetendoli (secondo il valore del contatore). Se un contatore è minore di 1 l’elemento non verrà incluso. |
c.get(k) |
Restituisce il valore corrispondente alla chiave k. Se k non esiste restituisce None. |
c.items() |
Restituisce la lista con le coppie [chiave, valore] |
c.keys() |
Restituisce la lista delle chiavi |
len(c) |
Restituisce il numero di elementi presenti |
max(c) |
Restituisce la chiave più grande… |
min(c) |
Restituisce la chiave più piccola… |
c.most_common(n) |
(Nuovo) Restituisce una lista con le prime n coppie (con i contatori più alti). Se n non è specificato, restituisce tutto. |
c.pop(k) |
Restituisce il valore di k e elimina la coppia. Se k non esiste provoca un errore. |
c.pop(k, default) |
Restituisce il valore di k e elimina la coppia. Se k non esiste restituisce il valore specificato. |
c.popitem() |
Restituisce una coppia (chiave, valore) e la elimina. |
c.setdefault(k) |
imposta il valore di k a None se non esiste, altrimenti rimane inalterato. |
c.setdefault(k, default) |
Imposta il valore di k a default se non è presente. |
c.subtract(z) |
(Nuovo) Aggiorna c sottraendo i valori presenti nella struttura z, si possono ottenere contatori negativi! |
sum(c) |
Restituisce la somma delle chiavi (se è possibile) |
c.total() |
Restituisce la somma dei contatori (Python 3.10) |
c.update(z) |
(Nuovo) Aggiorna c aggiungendo i valori presenti nella struttura z. Il metodo sovrascrive quello di dict() che invece sovrascrive i nuovi valori. |
c.values() |
Restituisce la lista dei valori. |
... |
… |
Prova
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
c=Counter() # Counter() c=Counter("arcobaleno") # Counter({'a': 2, 'o': 2, 'r': 1, 'c': 1, 'b': 1, 'l': 1, 'e': 1, 'n': 1}) c=Counter(['red', 'green', 'red']) # Counter({'red': 2, 'green': 1}) c=Counter({'red': 1, 'green': 5, 'blue': 2}) # Counter({'green': 5, 'blue': 2, 'red': 1}) x=len(c) # x=3 x=max(c) # x='red' x=min(c) # x='blue' le=list(c.elements()) # ['red', 'green', 'green', 'green', 'green', 'green', 'blue', 'blue'] lm=c.most_common() # [('green', 5), ('blue', 2), ('red', 1)] lm=c.most_common(2) # [('green', 5), ('blue', 2)] ... ... |