Come usare il contatore in Python

Come usare il contatore in Python
Questo articolo spiegherà come utilizzare il modulo "Counter" che viene per impostazione predefinita con il linguaggio di programmazione Python. Tutti i campioni di codice in questo articolo sono testati con Python versione 3.9.5 su Ubuntu 21.04.

A proposito di Counter Module

Il modulo contatore, come suggerisce il nome, può essere usato per contare gli elementi di un oggetto iterabile o hashable in Python. Counter Store ogni elemento di un iterabile (come un oggetto elenco di Python) come una chiave del dizionario Python. Poiché i dizionari di Python consentono solo chiavi uniche, non c'è ripetizione. I valori corrispondenti per questi tasti di.

Uso di base e sintassi

Per comprendere l'uso di base e la sintassi di Counter Class, dai un'occhiata al campione di codice di seguito:

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
Stampa (conta)

La prima istruzione importa il modulo contatore in modo che la classe contatore possa essere utilizzata all'interno del codice. Successivamente, un nuovo oggetto elenco Python è definito con alcuni dati. Una nuova istanza di Counter Object viene quindi creata passando "List1" come argomento. L'istruzione finale stampa l'output dell'oggetto "conta".

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Counter ('d': 4, 'b': 3, 'a': 2, 'e': 2, 'c': 1)

Si noti che l'output restituisce un oggetto conti e non un dizionario Python. Sebbene si comporta come un dizionario Python con una piccola differenza che viene spiegata di seguito.

Un oggetto contropiede si comporta come un oggetto Python Dictionary

Un dizionario in Python è un oggetto che memorizza gli elementi in coppie "Chiave: valore". Di seguito è riportato un esempio di dizionario di Python:

dict1 = "a": 1, "b": 2

La parte prima del simbolo ":" (colon) è chiamata "chiave" mentre la parte dopo il simbolo del colon è chiamata "valore". È possibile accedere al valore di qualsiasi chiave in un dizionario Python utilizzando la seguente sintassi:

dict1 = "a": 1, "b": 2
stampa (dict1 ["a"])

Devi solo fornire il nome della chiave in "[]" (quadrate) BREPLE. Se la chiave non esiste nel dizionario, viene lanciato un "keyerror".

L'output dell'esempio di contatore sopra mostra che quando si crea una nuova istanza della classe contatore, viene restituito un nuovo oggetto di contatto. Questo oggetto di contatto non è altro che un dizionario di Python, tranne per il fatto che non lancia un "keyerror" quando manca un valore chiave. Invece, gli assegna un valore di "0" (zero). È inoltre possibile accedere ai valori degli elementi in un oggetto contatore fornendo nomi chiave in parenti quadrati, proprio come un oggetto del dizionario. Dai un'occhiata al campione di codice di seguito:

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
stampa (conta ["f"])
dict1 = "a": 1, "b": 2
stampa (dict1 ["c"])

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

0
Traceback (chiamata più recente per ultima):
File "Main.py ", riga 11, in
stampa (dict1 ["c"])
Keyerror: 'c'

Come puoi vedere nell'output che quando si accede a una chiave che non esiste in un contatore, viene restituito "0" (zero). D'altra parte, un oggetto di dizionario Python lancia un "keyerror" quando manca una chiave.

Creazione manualmente di un oggetto contatore

Potrebbe esserci un caso in cui potresti voler definire manualmente un contro oggetto invece di analizzare un iterabile come un elenco di Python. Per creare un contatore, è possibile utilizzare la seguente sintassi:

Dal contatore delle importazioni di collezioni
Counter1 = Counter (A = 4, B = 3)
Counter2 = Counter ("A": 4, "B": 3)
Stampa (Counter1)
Stampa (Counter2)

È possibile utilizzare la sintassi in stile argomento mostrato nella prima istruzione o utilizzare la sintassi in stile dizionario Python mostrato nella seconda istruzione per creare nuove istanze di un contatore oggetto. Entrambi i metodi hanno lo stesso effetto e producono lo stesso output.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Counter ('A': 4, 'B': 3)
Counter ('A': 4, 'B': 3)

Ottenere gli oggetti più comuni da un banco oggetto

È possibile utilizzare il metodo "MOST_COMMON" per ottenere elementi e i loro conteggi ordinati in ordine decrescente da un oggetto di tipo contatore. Dai un'occhiata al campione del codice di seguito:

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
Stampa (conta.la maggior parte_common ())

L'output restituisce un elenco di tuple e non un contatore o un dizionario Python.

Puoi anche ottenere solo pochi elementi più alti fornendo un numero al metodo "MOST_COMMON" come argomento.

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
Stampa (conta.la maggior parte_common (2))

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

[('d', 4), ('b', 3)]

Altri metodi di contatore utili

È possibile accedere a tutte le chiavi e i valori di un contatore usando rispettivamente i metodi "tasti" e "valori".

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
Stampa (conta.tasti ())
Stampa (conta.valori())

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

dict_keys (['a', 'b', 'c', 'd', 'e'])
Dict_Values ​​([2, 3, 1, 4, 2])

Questi metodi producono oggetti iterabili in modo da poterti passare attraverso di loro.

È possibile ottenere sia le chiavi che i valori utilizzando il metodo "elementi".

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
Stampa (conta.elementi())

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

dict_items ([('a', 2), ('b', 3), ('c', 1), ('d', 4), ('e', 2)])

È inoltre possibile eseguire il ciclo attraverso il risultato ottenuto utilizzando il metodo "elemento".

È possibile convertire un contatore in un dizionario Python usando la funzione "dict".

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
Stampa (dict (conta))

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'A': 2, 'B': 3, 'C': 1, 'D': 4, 'E': 2

Looping attraverso le chiavi e i valori di un contatore

È possibile eseguire facilmente il ciclo attraverso le coppie di valore chiave di un oggetto contatore usando il metodo "elementi" spiegato sopra. Dai un'occhiata al campione del codice di seguito:

Dal contatore delle importazioni di collezioni
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" "
Counts = Counter (List1)
per la chiave, il valore nei conteggi.elementi():
Stampa (chiave, valore)

Nel codice, è possibile accedere alla variabile della coppia chiave utilizzando le variabili "chiave" e "valore" rispettivamente nel loop "per".

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

a 2
B 3
C 1
D 4
E 2

Conclusione

Il modulo "Counter" integrato di Python fornisce un modo rapido ed efficiente per ottenere il conteggio degli elementi immagazzinati in un oggetto di tipo iterabile. È possibile utilizzare il metodo "MOST_COMMON" per ottenere le coppie più elevate con conteggi più alti fornendo il numero desiderato come argomento.