Raccolta in Python: tutto ciò che devi sapere

Pubblicato: 2021-04-09

Python è un potente linguaggio di programmazione. È modulare e noto per la sua semplicità, riutilizzabilità e manutenibilità. Nella programmazione modulare, un'attività di programmazione ampia e complessa è suddivisa in moduli più piccoli.

Questo articolo parla della raccolta di moduli in Python . La raccolta migliora le funzionalità ed è l'alternativa ai contenitori dict, list, set e tuple integrati di Python per uso generale.

"Elenchi, tuple, insiemi e dizionari Python sono strutture di dati definite dall'utente e ognuno ha il proprio insieme di vantaggi e svantaggi."

Sommario

Modulo Python

Un modulo è un file contenente definizioni e istruzioni Python che implementano un insieme di funzioni. Il comando import viene utilizzato per importare moduli da altri moduli. Python ha diversi moduli integrati.

Veniamo ora al nocciolo dell'articolo e impariamo in dettaglio la raccolta di moduli in Python .

Raccolta in Python

La raccolta in Python è il contenitore che archivia raccolte di dati. List, set, tuple, dict, ecc. sono raccolte integrate in Python . Ci sono sei moduli di raccolta in Python che offrono strutture di dati aggiuntive per la memorizzazione di raccolte di dati. Questi moduli Python migliorano le operazioni della raccolta di contenitori integrati.

Discuteremo ora i diversi contenitori forniti dalla raccolta nel modulo Python.

1. OrdinatoDict

OrderedDict() funziona in modo simile all'oggetto dizionario in cui le chiavi mantengono l'ordine in cui sono inserite. Se si desidera reinserire la chiave, il valore precedente verrà sovrascritto e la posizione della chiave non cambierà.

Esempio:

importa OrderedDict dalle raccolte

d1=collezioni.OrderedDict()

d1['A']=1

d1['B']=2

d1['C']=3

d1['D']=4

per x,v in d1.items():

stampa (x,v)

Produzione:

A 1

B 2

C 3

D 4

2. deque()

Python deque() è un elenco ottimizzato che aggiunge e rimuove elementi da entrambi gli estremi.

Esempio:

importare deque dalle collezioni

lista1 = [“a”,”b”,”c”]

deq = deque(lista1)

stampa(deq)

Produzione:

deque(['a', 'b', 'c'])

3. Contatore

I contatori sono il sottogruppo degli oggetti dizionario che contano gli oggetti hashable. La funzione contatore accetta input iterabile come argomento e restituisce un output come Dizionario. La chiave è un elemento iterabile e il valore è il numero totale di volte in cui un elemento è presente nell'iterabile.

Esempio:

importa Contatore dalle raccolte

c = Contatore()

lista1 = [1,2,3,4,5,7,8,5,9,6,10]

Contatore(lista1)

Contatore({1:5,2:4})

lista1 = [1,2,4,7,5,1,6,7,6,9,1]

c = Contatore(lista1)

stampa (c[1])

Produzione:

3

Funzioni di conteggio aggiuntive

1. Element() Funzione

La funzione elements() restituisce un elenco degli elementi presenti nell'oggetto Counter .

Esempio:

c = Contatore({1:4,2:3})

print(list(c.elements())))

Produzione:

[1,1,1,1,2,2,2]

Qui, viene creato un oggetto Counter utilizzando un argomento del dizionario. Il numero di conteggi per 1 è 4 e per 2 è 3. La funzione elements() viene chiamata con l' oggetto c che restituisce un iteratore.

2. Funzione most_common()

La funzione Counter() Python restituisce un dizionario non ordinato mentre la funzione most_common() lo ordina in base al numero di ogni conteggio degli elementi.

Esempio:

lista = [1,2,3,4,5,5,5,7,3]

c = contatore(lista)

print(c.most_common())

Produzione:

[((5,3), (1,1),(2,1),(3,2),(4,1), (7,1))]

Qui, la funzione most_common restituisce un elenco ordinato in base al conteggio degli elementi. 5 viene tre volte; quindi, viene prima, come elemento della lista.

3. Funzione Sottrai()

Il subtract() considera argomenti iterabili o di mappatura e sottrae il conteggio degli elementi con quell'argomento.

Esempio:

c = contatore({1:2,2:3})

uscita= {1:1,2:1}

c.sottrai (output)

stampa(c)

Produzione:

Contatore({1:1,2:2})

4. Oggetti Chainmap

La classe Chainmap raggruppa più dizionari per creare un unico elenco. Il dizionario collegato è pubblico ed è accessibile tramite l'attributo map.

Esempio:

Importa chainmap dalle raccolte

dict1 = { 'w' : 1, 'x' : 2 }

dict2 = {'y' : 3. 'z': 4 }

chain_map = ChainMap(dict1,dict2)

print(chain_map.maps)

Produzione:

[{'x' : 2, 'w' :1}, {'y' : 3, 'x':4}]

5. Nominato doppio

La funzione namedtuple() restituisce un oggetto tupla con nomi per ogni posizione nella tupla. È stato introdotto per eliminare il problema di ricordare l'indice di ogni campo di un oggetto tupla.

Esempio:

Importa namedtuple dalle raccolte

Studente = namedtuple ("Studente", "nome, cognome, età")

s1 = Studente ('Tom', 'Alter', '12')

print(s1.firstname)

Produzione:

Studente(nome='Tom', cognome='Alter', età='12')

In questo esempio, puoi accedere ai campi di qualsiasi istanza di una classe.

6. DefaultDict

Python defaultdict() è un oggetto dizionario ed è una sottoclasse della classe dict. Fornisce tutti i metodi del dizionario ma accetta il primo argomento come tipo di dati predefinito. Genera un errore quando accedi a una chiave inesistente.

Esempio:

import defaultdict dalle raccolte

num = defaultdict(int)

num['uno'] = 1

num['due'] = 2

stampa (num['tre'])

Produzione:

0

Conclusione

È noto che la raccolta in Python apporta miglioramenti al modulo della raccolta di Python. Le raccolte sono state introdotte nella versione 2.4 di Python. Molte modifiche e miglioramenti possono essere previsti nelle versioni successive. In questo articolo, abbiamo spiegato le sei raccolte esistenti in Python con esempi e il modo in cui sono implementate nel linguaggio. Sono uno dei concetti più importanti dal punto di vista di uno studente.

Impara la raccolta in Python con l' esclusivo programma di laurea in applicazioni per computer di upGrad . Questo programma copre le competenze necessarie per entrare nel settore IT.

Se sei curioso di conoscere Python, Data Science, dai un'occhiata all'Executive PG Program in Data Science di IIIT-B e upGrad, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici, tutoraggio con esperti del settore , 1 contro 1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.

Impara i corsi di scienza dei dati online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Perché abbiamo bisogno del modulo di raccolta in Python?

Python ha già 4 tipi di dati di raccolta integrati. Questi sono elenco, tupla, dizionario e set. Tuttavia, questi contenitori di dati vengono utilizzati per scopi generali.
I seguenti punti evidenziano i principali vantaggi dell'utilizzo del modulo di raccolta rispetto ai contenitori di dati integrati.
Il modulo di raccolta fornisce la versione specializzata di questi contenitori, come namedtuple, OrderedDict, defaultdict, chainmap, counter e molti altri.
Essendo più ottimizzati, questi contenitori si dimostrano un'alternativa migliore ai tradizionali contenitori di dati come list, tuple e set.
Il modulo di raccolta è efficiente per gestire i dati strutturati.
I contenitori di dati come namedtuple consumano meno memoria e forniscono operazioni avanzate per archiviare e gestire i dati.

Qual è la differenza tra un dizionario e un dizionario ordinato in Python?

Python Dictionary o "Dict" è una struttura dati incorporata di Python che viene utilizzata per memorizzare una raccolta non ordinata di elementi. A differenza di altre strutture dati Python che memorizzano valori singoli, la struttura dati del dizionario memorizza coppie chiave-valore in cui ogni chiave è univoca. Non ricorda l'ordine di inserimento delle coppie chiave-valore e scorre le chiavi.
D'altra parte, un Ordered Dictionary o OrderedDict tiene traccia dell'ordine di inserimento delle coppie chiave-valore. Consuma anche più memoria di un normale dizionario in Python a causa della sua implementazione di elenchi doppiamente collegati. Se elimini e reinserisci la stessa chiave, verrà inserita nella sua posizione originale poiché OrderedDict ricorda l'ordine di inserimento.

Quali sono le varie operazioni di namedtuple?

La namedtuple in Python esegue varie operazioni. Di seguito è riportato un elenco di alcune delle operazioni più comuni eseguite da namedtuple.
1. Operazioni di accesso: Accesso per indice: è possibile accedere agli elementi in una namedtuple tramite i loro indici, a differenza di un dizionario. Accesso tramite nome chiave: il modo alternativo per accedere agli elementi è tramite il loro nome chiave.
2. Operazioni di conversione: make(): questa funzione restituisce una namedtuple. _asadict(): questa funzione restituisce un dizionario ordinato che è costruito dai valori mappati. usando l'operatore “**” (doppia stella): questa funzione converte un dizionario Python in una namedtuple.
3. Operazioni aggiuntive: _fileds(): questa funzione restituisce tutti i nomi delle chiavi della datatupla indicata. _replace(): questa funzione prende un nome chiave come argomento e cambia i valori mappati su di essa.