Collezioni in Python: tutto ciò che devi sapere sulle raccolte Python



Questo blog tratterà i tipi di dati di raccolta incorporati in Python insieme al modulo delle raccolte con tutte le strutture di dati di raccolta specializzate.

Il linguaggio di programmazione Python ha quattro tipi di dati di raccolta: elenco , tupla, insiemi e . Ma viene fornito con un modulo integrato noto come raccolte che ha strutture di dati specializzate che sostanzialmente copre le carenze dei quattro tipi di dati. In questo blog, esamineremo in dettaglio ciascuna di queste strutture di dati specializzate. Di seguito sono riportati i soggetti avvolti in questo blog:

Cosa sono le raccolte in Python?

Le raccolte in Python sono fondamentalmente tipi di dati contenitore, ovvero elenchi, insiemi, tuple, dizionario. Hanno caratteristiche differenti in base alla dichiarazione e all'utilizzo.





  • Un elenco è dichiarato tra parentesi quadre, è modificabile, memorizza valori duplicati ed è possibile accedere agli elementi utilizzando gli indici.

  • Una tupla è ordinata e di natura immutabile, sebbene all'interno di una tupla possano essere presenti voci duplicate.



  • Un insieme è non ordinato e dichiarato tra parentesi quadre. Non è indicizzato e non ha anche voci duplicate.

  • Un dizionario ha coppie di valori chiave ed è di natura mutevole. Usiamo le parentesi quadre per dichiarare un dizionario.

    def __init __ (self)

Questi sono i tipi di dati del contenitore incorporati per scopi generali di Python. Ma come tutti sappiamo, Python ha sempre qualcosa in più da offrire. Viene fornito con un modulo python denominato collections che ha strutture di dati specializzate.



Strutture di dati di raccolta specializzate

Collezioni modulo in python implementa strutture di dati specializzate che forniscono un'alternativa ai tipi di dati container incorporati di Python. Di seguito sono riportate le strutture dati specializzate nel modulo collezioni.

  1. namedtuple ()
  2. e
  3. Chainmap
  4. Counter
  5. OrderedDict
  6. defaultdict
  7. UserDict
  8. Lista degli utenti
  9. UserString

namedtuple ()

Restituisce una tupla con una voce denominata, il che significa che ci sarà un nome assegnato a ciascun valore nella tupla. Supera il problema di accedere agli elementi utilizzando i valori dell'indice. Con namedtuple () diventa più facile accedere a questi valori, poiché non è necessario ricordare i valori di indice per ottenere elementi specifici.

Come funziona?

Prima di tutto, devi importare il modulo delle collezioni, non richiede installazione.

dalle collezioni importa namedtuple

Guarda il codice seguente per capire come puoi usare namedtuple.

a = namedtuple ('course', 'name, tech') s = a ('data science', 'python') print (s) # l'output sarà course (name = 'python', tech = 'python')

Come creare una namedtuple utilizzando un elenco?

s._make (['data science', 'python']) #l'output sarà lo stesso di prima.

e

deque pronunciato come 'mazzo' è un elenco ottimizzato per eseguire facilmente l'inserimento e l'eliminazione.

Come funziona?

#creazione di una deque dalle collezioni import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) #l'output sarà deque ([' d ',' u ',' r ',' e ',' k '])

Ora diamo un'occhiata a come inseriremo e rimuoveremo gli elementi da deque.

a1.append ('a') print (a1) # l'output sarà deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # l'output sarà deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Come dovrebbe essere ovvio, l'inserimento di un componente è migliorato utilizzando deque, inoltre è possibile rimuovere anche i componenti.

a1.pop () print (a1) #il risultato sarà deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) #l'output sarà deque (['d', 'u', 'r', 'e', ​​'k'])

Simile ai tipi di dati incorporati, ci sono molte altre operazioni che possiamo eseguire su una deque. Come contare gli elementi o cancellare il deque ecc.

ChainMap

È una classe simile a un dizionario che è in grado di creare un'unica vista di più mappature. Fondamentalmente restituisce un elenco di molti altri dizionari. Supponiamo di avere due dizionari con diverse coppie di valori chiave, in questo caso ChainMap creerà un unico elenco con entrambi i dizionari al suo interno.

Come funziona?

dalle collezioni import ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the l'output sarà ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

Per accedere o inserire elementi utilizziamo le chiavi come indice. Ma per aggiungere un nuovo dizionario in ChainMap usiamo il seguente approccio.

a1 = {5: 'AI', 6: 'neural networks'} c1 = c.new_child (a1) print (c1) # l'output sarà ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'scienza dei dati', 4: 'Apprendimento automatico'}, {5: 'AI', 6: 'reti neurali'}]

Counter

È una sottoclasse di dizionario che viene utilizzata per contare gli oggetti hashable.

Come funziona?

importazione dalle collezioni Counter a = [1,1,1,1,2,3,3,4,3,3,4] c = Counter (a) print (c) #l'output sarà Counter = ({1: 4, 2: 1, 3: 4, 4: 2})

Oltre alle operazioni che puoi eseguire su un dizionario, Counter ha altre 3 operazioni che possiamo eseguire.

  1. funzione elemento - Restituisce un elenco contenente tutti gli elementi nel contatore.
  2. Most_common () - Restituisce un elenco ordinato con il conteggio di ogni elemento nel contatore.
  3. Subtract (): prende un oggetto iterabile come argomento e sottrae il conteggio degli elementi nel contatore.

OrderedDict

È una sottoclasse di dizionario che ricorda l'ordine in cui sono state aggiunte le voci. In sostanza, anche se si modifica il valore della chiave, la posizione non verrà cambiata per via dell'ordine in cui è stata inserita nel dizionario.

Come funziona?

dalle collezioni import OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' da [7] = 'a' print (from) # l'output sarà OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Non importa quale valore venga inserito nel dizionario, OrderedDict ricorda l'ordine in cui è stato inserito e ottiene l'output di conseguenza. Anche se cambiamo il valore della chiave. Diciamo che se cambiamo il valore della chiave da 4 a 8, l'ordine non cambierà nell'output.

defaultdict

È una sottoclasse di dizionario che chiama una funzione factory per fornire i valori mancanti. In generale, non genera errori quando un valore di chiave mancante viene chiamato in un dizionario.

Come funziona?

dalle collezioni import defaultdict d = defaultdict (int) # dobbiamo specificare anche un tipo. d [1] = 'edureka' d [2] = 'python' print (d [3]) # restituirà l'output come 0 invece di keyerror.

UserDict

Questa classe funge da involucro attorno agli oggetti dizionario. La necessità di questa classe derivava dalla necessità di sottoclassare direttamente da dict. Diventa più facile lavorare con questa classe poiché il dizionario sottostante diventa un attributo.

raccolte di classi.UserDict ([initialdata])

Questa classe simula un dizionario. Il contenuto dell'istanza è conservato in un normale dizionario a cui si può accedere con l'attributo 'data' della classe UserDict. Il riferimento dei dati iniziali non viene conservato, per essere utilizzato per altri scopi.

Lista degli utenti

Questa classe agisce come un involucro attorno agli oggetti della lista. È una classe base utile per altri elenchi come classi che possono ereditare da loro e sovrascrivere i metodi esistenti o anche aggiungerne di meno di nuovi.

La necessità di questa classe derivava dalla necessità di creare una sottoclasse direttamente dalla lista. Diventa più facile lavorare con questa classe poiché l'elenco sottostante diventa un attributo.

class collections.UserList ([list])

È la classe che simula una lista. Il contenuto dell'istanza viene mantenuto in un elenco consueto. Le sottoclassi dell'elenco sono invocate per offrire un costruttore che può essere chiamato senza o senza una controversia.

In questo blog, abbiamo imparato a conoscere le strutture dati specializzate fornite con il modulo collezioni in python. L'ottimizzazione porta a prestazioni migliori e risultati migliori. Lo stesso vale anche per la nostra carriera e le nostre capacità. Se vuoi dare il via al tuo apprendimento e ottimizzare il modo in cui percepisci la programmazione, iscriviti a edureka e scatena le infinite possibilità con Python.

amministratore certificato cloudera per apache hadoop

Hai domande? menzionali nei commenti e ti risponderemo il prima possibile.