Tipi di strutture dati in Python: List, Tuple, Sets & Dictionary

Pubblicato: 2020-12-30

Python è il linguaggio preferito in assoluto da tutti gli appassionati di Data Science. La natura versatile e l'approccio di facile comprensione aiutano gli sviluppatori a concentrarsi maggiormente sulla comprensione delle tendenze nei dati e sull'ottenimento di informazioni significative, piuttosto che perdere tempo a correggere un bug minore con punto e virgola o chiudere la parentesi generale. Python essendo il linguaggio più popolare tra i principianti si adatta rapidamente, quindi diventa importante avere una buona conoscenza di questo linguaggio.

Le strutture dati sono un concetto essenziale in qualsiasi linguaggio di programmazione. Definisce come le variabili ei dati possono essere archiviati e recuperati dalla memoria nel miglior modo possibile, a seconda del tipo di dati. Definisce anche la relazione tra le variabili, che aiuta a decidere le operazioni e le funzioni che dovrebbero essere eseguite su di esse. Capiamo come Python gestisce i dati.

Sommario

Tipi di struttura dati in Python

1. Elenco

Questa è la struttura dati più semplice e comunemente usata nella programmazione Python. Come suggerisce il nome, è una raccolta di oggetti da conservare. Gli elementi memorizzati possono essere di qualsiasi tipo numerico, stringa, booleano, oggetti, ecc, il che lo rende eterogeneo. Ciò significa che un elenco può avere qualsiasi tipo di dati e possiamo scorrere questo elenco utilizzando qualsiasi tipo di ciclo.

Gli elementi memorizzati sono solitamente associati ad un indice che definisce la posizione nella lista. La numerazione dell'indice parte da zero. L'elenco è mutevole, il che significa che gli elementi nell'elenco possono essere aggiunti, rimossi o modificati anche dopo la loro definizione. Questa struttura di dati è come gli array in altre lingue che di solito è omogenea, il che significa che solo un tipo di dati può essere archiviato negli array. Alcune operazioni di base sugli elenchi sono le seguenti:

  • Per dichiarare una lista in Python, mettila tra parentesi quadre:

sample_list = ['upGrad', '1', 2]

  • Per inizializzare un elenco vuoto:

lista_campione = lista()

  • Aggiungi elementi all'elenco:

sample_list.append('nuovo_elemento')

  • Rimuovere elementi dall'elenco:

sample_list.remove(<nome elemento>) rimuove l'elemento specifico

del sample_list[<element index num>] rimuove l'elemento in quell'indice

sample_list.pop(<element index num>) rimuove l'elemento di quell'indice e restituisce l'elemento rimosso

  • Per cambiare elemento in qualsiasi indice:

sample_list[<qualsiasi indice>] = nuovo elemento

  • Slicing : questa è una caratteristica importante che può filtrare gli elementi nell'elenco in casi particolari. Considera che hai bisogno solo di un intervallo specifico di valori dall'elenco, quindi puoi semplicemente farlo:

sample_list[start: stop: step] dove step definisce lo spazio tra gli elementi e per default è 1.

Ulteriori informazioni su: Come creare un albero decisionale perfetto

2. Tupla

Questa è un'altra struttura di dati che memorizza i dati in sequenza, il che significa che i dati aggiunti rimangono in modo ordinato come gli elenchi. Seguendo le stesse linee, Tuple può anche memorizzare dati eterogenei e l'indicizzazione rimane la stessa.

La principale differenza tra i due è che gli elementi memorizzati nella tupla sono immutabili e non possono essere modificati dopo la definizione. Ciò significa che non puoi aggiungere nuovi elementi, modificare elementi esistenti o eliminare elementi dalla tupla. Gli elementi possono essere letti solo da esso tramite indicizzazione o decompressione senza sostituzione.

Questo rende la tupla veloce rispetto all'elenco in termini di creazione. La tupla è archiviata in un unico blocco di memoria, ma un elenco richiede due blocchi, uno di dimensioni fisse e l'altro di dimensioni variabili per la memorizzazione dei dati. Si dovrebbe preferire una tupla su una lista quando l'utente è sicuro che gli elementi da memorizzare non richiedano ulteriori modifiche. Alcune cose da considerare durante l'utilizzo di una tupla:

  • Per inizializzare una tupla vuota:

campione_tupla = tupla()

  • Per dichiarare una tupla, racchiudere gli elementi tra parentesi circolari:

sample_tuple = ('upGrad', 'Python', 'ML', 23432)

  • Per accedere agli elementi della tupla:

tupla_campione[<numero_indice>]

3. Imposta

In matematica, un insieme è una raccolta ben definita di elementi unici che possono o non possono essere correlati tra loro. In tuple e list, è possibile memorizzare molti elementi duplicati senza errori, ma la struttura dei dati impostata accetta solo elementi univoci.

Gli elementi di un set sono memorizzati in modo disordinato, il che significa che gli elementi sono memorizzati casualmente nel set e non esiste una posizione definita o un indice supportato, né l'affettamento è consentito in un set. L'insieme è esso stesso mutevole, ma gli elementi devono essere immutabili perché il modo in cui funzionano gli insiemi sta eseguendo l'hashing di questi elementi e in questo processo è possibile eseguire l'hashing solo degli elementi immutabili.

Gli elementi possono essere aggiunti o rimossi dal set ma non possono essere modificati in quanto non esiste il concetto di indicizzazione e quindi gli elementi possono essere modificati. Come in matematica, anche qui si possono eseguire tutte le operazioni sugli insiemi come unione, intersezione, differenza, disgiunta. Vediamo come implementarlo:

  • Per inizializzare un set vuoto:

set_campione = set()

  • Aggiungi elementi al set:

sample_set.add(item) Aggiunge un singolo elemento al set

sample_set.update(items) Questo può aggiungere più elementi tramite un elenco, una tupla o un altro insieme

  • Rimuovere gli elementi dal set:

sample_set.discard(item) Rimuove l'elemento senza preavviso se l'elemento non è presente

sample_set.remove(item) Genera un errore se l'elemento da rimuovere non è presente.

  • Operazioni sugli insiemi (supponiamo due insiemi inizializzati: A e B):

A | B o A.union(B): operazione di unione

A & B o A.intersezione(B): operazione di intersezione

A – B o A.differenza(B): Differenza di due insiemi

A ^ B o A.symmetric_difference(B): differenza simmetrica degli insiemi

Dai un'occhiata a: frame di dati in Python

4. Dizionario

Questa è la struttura dati più utile in Python, che consente agli elementi di dati di essere archiviati in una coppia chiave-valore. La chiave deve essere un valore immutabile e il valore può essere un elemento mutabile. Questo concetto è come appare un vero dizionario, dove abbiamo le parole come chiavi e i loro significati come valori. Un dizionario memorizza queste coppie in modo non ordinato e quindi non esiste il concetto di indice in questa struttura di dati. Alcune cose importanti relative a questo:

  • Per inizializzare un dizionario vuoto:

sample_dict = dict()

  • Per aggiungere elementi al dizionario:

sample_dict[chiave] = valore

Un altro modo per farlo è sample_dict = {key: value}

Se stampi questo dizionario, l'output sarebbe: {'key1': value, 'key2': value … }

  • Per ottenere le chiavi e i valori del dizionario:

sample_dict.keys(): restituisce l'elenco delle chiavi

sample_dict.values(): restituisce l'elenco dei valori

sample_dict.items(): restituisce l'oggetto di visualizzazione delle coppie chiave-valore come tupla nell'elenco

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

Conclusione

È importante acquisire le conoscenze di base delle strutture dati in Python. Essendo nel settore dei dati, diverse strutture di dati possono aiutare a ottenere una soluzione migliore degli algoritmi sottostanti. Rende lo sviluppatore più consapevole delle migliori pratiche di codifica per ottenere i risultati in modo efficiente. L'utilizzo di ciascuna struttura di dati è fortemente basato sulla situazione e richiede una pratica rigorosa.

Qual è l'importanza delle strutture dati?

Le strutture dati sono uno dei pilastri fondamentali di qualsiasi linguaggio di programmazione. Definiscono come i dati verranno archiviati e manipolati nella memoria. I concetti delle strutture dati rimangono gli stessi indipendentemente dal linguaggio di programmazione di cui stiamo parlando.

Le strutture dati più comuni includono array, elenchi, stack, code, alberi, hashmap e grafici. Alcuni di essi sono integrati mentre altri devono essere implementati dall'utente con l'aiuto delle strutture dati predefinite.

Come posso sviluppare una conoscenza approfondita delle strutture di dati?

I concetti fondamentali delle implementazioni e del funzionamento di qualsiasi struttura dati dovrebbero essere il primo passo da compiere. Dopo aver acquisito familiarità con i concetti teorici e il lavoro, puoi iniziare con la parte di codifica.

Dovresti sempre studiare le complessità temporali e spaziali di qualsiasi algoritmo o struttura di dati su cui stai lavorando. Questo ti darà una visione adeguata del concetto e sarai in grado di risolvere qualsiasi domanda che richieda quella particolare struttura di dati.

Quando è preferibile un elenco Python per l'archiviazione dei dati?

Un elenco può essere utilizzato per memorizzare vari valori con diversi tipi di dati ed è accessibile solo dai rispettivi indici. Quando è necessario eseguire operazioni matematiche sugli elementi, è possibile utilizzare un elenco poiché consente di operare direttamente sugli elementi matematicamente.

Poiché un elenco può essere ridimensionato, può essere utilizzato per memorizzare i dati quando non si è certi del numero di elementi da memorizzare.