Cos'è Python Counter?
Python Counter è un contenitore che conterrà il conteggio di ciascuno degli elementi presenti nel contenitore. Il contatore è una sottoclasse disponibile all'interno della classe del dizionario.
Il contatore è una sottoclasse disponibile all'interno della classe del dizionario. Utilizzando lo strumento Python Counter, puoi contare le coppie chiave-valore in un oggetto, chiamato anche oggetto tabella hash.
Perché usare Python Counter?
Ecco i motivi principali per l'utilizzo di Python 3 Counter:
- Il contatore contiene i dati in una raccolta non ordinata, proprio come gli oggetti tabella hash. Gli elementi qui rappresentano le chiavi e il conteggio come valori.
- Ti consente di contare gli elementi in un elenco iterabile.
- Operazioni aritmetiche come addizione, sottrazione, intersezione e unione possono essere facilmente eseguite su un contatore.
- Un contatore può anche contare elementi da un altro contatore
In questo tutorial di Python imparerai:
- Cos'è Python Counter?
- Perché usare Python Counter?
- Introduzione a Python Counter
- Contatore con stringa
- Contatore con elenco
- Counter with Dictionary
- Contrasta con Tuple
- Accesso, inizializzazione e aggiornamento dei contatori
- Eliminazione di un elemento dal contatore
- Operazioni aritmetiche su Python Counter
- Metodi disponibili su Python Counter
- Riassegnazione dei conteggi in Python
- Ottieni e imposta il conteggio degli elementi utilizzando Counter
Introduzione a Python Counter
Python Counter prende in input una lista, una tupla, un dizionario, una stringa, che sono tutti oggetti iterabili, e ti darà un output che avrà il conteggio di ogni elemento.
Sintassi:
Counter(list)
Considera di avere un elenco seguente:
list1 = ['x','y','z','x','x','x','y', 'z']
L'elenco ha elementi x, yez. Quando usi Counter in questo elenco, conterà quante volte x, yez sono presenti. L'output se counter viene utilizzato su list1 dovrebbe essere qualcosa del tipo:
Counter({'x': 4, 'y': 2, 'z': 2})
Quindi abbiamo il conteggio di x come 4, y come 2 e z come 2.
Per utilizzare Counter, dobbiamo prima importarlo come mostrato nell'esempio riportato di seguito:
from collections import Counter
Ecco un semplice esempio, che mostra il funzionamento del modulo Counter.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Produzione:
Counter({'x': 4, 'y': 2, 'z': 2})
Contatore con stringa
In Python, tutto è un oggetto e anche la stringa è un oggetto. La stringa Python può essere creata semplicemente racchiudendo caratteri tra virgolette doppie. Python non supporta un tipo di carattere. Queste vengono trattate come stringhe di lunghezza uno, considerate anche come sottostringhe.
Nell'esempio seguente, una stringa viene passata a Counter. Restituisce il formato del dizionario, con una coppia chiave / valore in cui la chiave è l'elemento e il valore è il conteggio. Considera anche lo spazio come un elemento e fornisce il conteggio degli spazi nella stringa.
Esempio:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Produzione:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Contatore con elenco
Una lista è un oggetto iterabile che ha i suoi elementi all'interno di parentesi quadre.
Gli elementi nell'elenco quando forniti al contatore verranno convertiti in oggetti tabella hash in cui gli elementi diventeranno chiavi ei valori saranno il conteggio degli elementi dall'elenco fornito.
Ad esempio ["x", "y", "z", "x", "x", "x", "y", "z"]. Dopo aver assegnato il contatore alla lista, ti darà il conteggio di ogni elemento nella lista.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Produzione:
Counter({'x': 4, 'y': 2, 'z': 2})
Counter with Dictionary
Un dizionario ha elementi come coppia chiave / valore e sono scritti all'interno di parentesi graffe.
Una volta che il dizionario è stato dato al contatore, verrà convertito in un oggetto hashtable in cui gli elementi diventeranno chiavi, ei valori saranno il conteggio degli elementi dal dizionario dato.
Ad esempio: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. La funzione Counter proverà a trovare il conteggio di ciascuna chiave nel dizionario dato.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Produzione:
Counter({'x': 4, 'y': 2, 'z': 2})
Contrasta con Tuple
Tuple è una raccolta di oggetti separati da virgole all'interno di parentesi tonde. Counter ti darà il conteggio di ciascuno degli elementi nella tupla data.
Una volta che la tupla viene data al contatore, verrà convertita in un oggetto tabella hash in cui gli elementi diventeranno chiavi ei valori saranno il conteggio degli elementi dalla tupla data.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Produzione:
Counter({'x': 4, 'y': 2, 'z': 2})
Accesso, inizializzazione e aggiornamento dei contatori
Inizializzazione del contatore
Un contatore può essere inizializzato passando un valore stringa, un elenco, un dizionario o una tupla come mostrato di seguito:
from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
Puoi anche inizializzare un contatore vuoto come mostrato di seguito:
from collections import Counter_count = Counter()
Aggiornamento del contatore
È possibile aggiungere valori al contatore utilizzando il metodo update ().
_count.update('Welcome to Guru99 Tutorials!')
Il codice finale è:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
L'output è:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Accesso al contatore
Per ottenere i valori dal contatore, puoi fare come segue:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print('%s : %d' % ('u', _count['u']))print('\n')for char in 'Guru':print('%s : %d' % (char, _count[char]))
Produzione:
u : 3G : 1u : 3r : 2u : 3
Eliminazione di un elemento dal contatore
Per eliminare un elemento da Counter puoi utilizzare del, come mostrato nell'esempio seguente:
Esempio:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Produzione:
Counter({'y': 2, 'z': 2})
Operazioni aritmetiche su Python Counter
Operazioni aritmetiche come addizione, sottrazione, intersezione e unione possono essere eseguite su un contatore come mostrato nell'esempio seguente:
Esempio:
from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = counter1 - counter2 # all -ve numbers are excluded.For example z will be z = -2-4=-6, since it is -ve value it is not shown in the outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)
Produzione:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Metodi disponibili su Python Counter
Ci sono alcuni metodi importanti disponibili con Counter, ecco l'elenco degli stessi:
- elements () : questo metodo ti restituirà tutti gli elementi con count> 0. Gli elementi con conteggio 0 o -1 non verranno restituiti.
- most_common (valore): questo metodo restituirà gli elementi più comuni dall'elenco dei contatori.
- subtract (): questo metodo viene utilizzato per dedurre gli elementi da un altro contatore.
- update (): questo metodo viene utilizzato per aggiornare gli elementi da un altro contatore.
Esempio: elementi ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)
Produzione:
xxxxxyy
Esempio: most_common (valore)
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})common_element = counter1.most_common(2) # The dictionary will be sorted as per the most common element first followed by next.print(common_element)common_element1 = counter1.most_common() # if the value is not given to most_common , it will sort the dictionary and give the most common elements from the start.The last element will be the least common element.print(common_element1)
Produzione:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Esempio: subtract ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Produzione:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Esempio: update ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Produzione:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Riassegnazione dei conteggi in Python
È possibile riassegnare i conteggi del contatore come mostrato di seguito:
Considera di avere un dizionario come: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
È possibile modificare il conteggio dell'elemento come mostrato di seguito:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Risultato: dopo l'esecuzione vedrai che il conteggio y è cambiato da 12 a 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Ottieni e imposta il conteggio degli elementi utilizzando Counter
Per ottenere il conteggio di un elemento utilizzando Counter puoi fare come segue:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'
Produzione:
12
Per impostare il conteggio dell'elemento puoi fare come segue:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Produzione:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Sommario:
- Counter è un contenitore che conterrà il conteggio di ciascuno degli elementi presenti nel contenitore.
- Counter è una sottoclasse disponibile all'interno della classe del dizionario.
- Utilizzando lo strumento Python Counter, puoi contare le coppie chiave-valore in un oggetto, chiamato anche oggetto tabella hash.
- Il contatore contiene i dati in una raccolta non ordinata, proprio come gli oggetti tabella hash. Gli elementi qui rappresentano le chiavi e il conteggio come valori.
- Ti consente di contare gli elementi in un elenco iterabile.
- Operazioni aritmetiche come addizione, sottrazione, intersezione e unione possono essere facilmente eseguite su un contatore.
- Un contatore può anche contare elementi da un altro contatore.
- I metodi importanti disponibili su un contatore sono elements (), most_common (value), subtract () e update ().
- Un contatore può essere utilizzato su una stringa, un elenco, un dizionario e una tupla.