Qual è la differenza tra elenco e tupla?
Pubblicato: 2021-11-28Tuple e liste sono un tipo di struttura dati usata in Python. Gli elenchi memorizzano i dati in una singola variabile usando parentesi quadre, mentre le tuple memorizzano i dati in una variabile con l'aiuto delle parentesi. Entrambe le strutture vengono utilizzate per memorizzare più valori e oggetti.
Questo articolo approfondirà le differenze chiave tra elenco e tupla ed esplorerà i loro casi d'uso. Ma prima, diamo una rapida occhiata alle somiglianze principali tra loro:
- È possibile memorizzare elementi e oggetti di tutti i tipi di dati sia nelle tuple che negli elenchi.
- Sia la tupla che l'elenco consentono l'accesso ai dati utilizzando il rispettivo indice.
- Entrambi questi tipi di dati possono compilare e catalogare una varietà di elementi di dati.
Sommario
Tupla Python vs Elenco
1. Differenze di sintassi
La dichiarazione di liste e tuple è invariabilmente diversa in Python. Le liste sono dichiarate usando '[]' parentesi quadre, mentre la dichiarazione delle tuple è fatta usando '()'.
Ecco un esempio per capire meglio come dichiarare liste e tuple in Python.
lista_num = [7,8,9,10]
tup_num = (10,11,13,14)
stampa(elenco_num)
stampa(tup_num)
L'output di questa sequenza sarebbe.
[7,8,9,10]
(10,11,13,14)
In questo esempio, viene definita una variabile denominata list_num che contiene numeri da 7 a 10. Vediamo anche che l'output è racchiuso tra parentesi quadre. Tuttavia, la variabile definita come tup_num e contiene i numeri da 10 a 14 visualizza un output tramite parentesi.
Python utilizza una funzione type() che ci aiuta a capire il tipo di elementi creati.
print(tipo(tup_num))
print(tipo(elenco_num))
Produzione:
<classe 'tupla'>
<classe 'lista'>
2. Mutabilità (mutabile vs immutabile)
Tuple ed elenchi sono contraddittori quando si tratta della loro mutevolezza. Le tuple sono strutture immutabili che non possono essere modificate o modificate dopo essere state create. Al contrario, le liste sono strutture mutevoli che possono essere facilmente alterate o modificate dopo la loro creazione.
Solo le tuple possono essere usate come chiave per i dizionari a causa della loro natura immutabile. Gli elenchi non possono mai essere utilizzati come chiavi quando richiesto.
3. Modifica di un oggetto (Elenco vs Tupla)
Scopriamo cosa succede quando viene creato un tentativo di apportare una modifica all'elenco.
nome = [alex, rick, martin]
nome [0] = "roxy"
Nota : il primo elemento è sempre indicato come 0 e non 1.
Ora diamo un'occhiata a come sarebbe l'output dopo il seguente comando:
>>>nome
Produzione:
[Roxy, Rick, Martin]
L'output mostra come è cambiato il primo elemento nell'elenco.
Ora vediamo quale sarebbe il risultato se fosse usata una tupla.
nome = (alex, rick, martin)
Quando un elemento nella tupla viene modificato utilizzando
nome(0) = "roxy"
L'output sarà:
TypeError: l'oggetto 'tuple' non supporta l'assegnazione di elementi.
Ciò significa che la struttura dei dati della tupla non supporta un oggetto che è stato modificato in seguito. Pertanto, possiamo concludere che solo le liste possono essere modificate e non le tuple.
4. Copie vs riutilizzate
Non si possono copiare tuple. La ragione qui è la natura immutabile delle tuple. Ad esempio, se esegui una tupla (tup_name), vedrai che è stata ripristinata su se stessa.
Esempio:
nomi = ('allen',”siri”, “Michaela”)
copyNames = tupla(nomi)
print(names is copyNames)
L'output qui sarà: "Vero".
Al contrario, se provi a fare lo stesso per un elenco, (come illustrato nell'esempio):
Esempio:
nomi = [“allen”, “ siri “' “Michaela”]
copyNames = elenco (nomi)
print(names is copyNames)
L'output verrà visualizzato come "falso".
Dovresti copiare e incollare i nomi completi nel nuovo elenco per un vero output.
5. Tupla Python vs Elenco | Differenze di dimensione
A causa della natura immutabile della tupla, Python alloca solo memorie di tupla sotto forma di grandi blocchi con un sovraccarico relativamente basso. Per gli elenchi, Python fornisce solo blocchi di memoria di dimensioni inferiori. Di conseguenza, le tuple hanno solo una piccola quantità di memoria rispetto alle liste. Tuttavia, ciò significa che le tuple sono molto più veloci da usare rispetto alle liste quando sono coinvolti molti elementi.
6. Eterogeneo vs omogeneo
Le tuple possono memorizzare elementi di vario tipo che sono eterogenei. Al contrario, gli elenchi possono memorizzare caratteristiche o dati della stessa variante che sono omogenei.
Questa, tuttavia, è solo una differenza semantica. Ad esempio, gli elenchi possono memorizzare dati di vario tipo e le tuple possono anche memorizzare dati dello stesso tipo.
Esempio:
list_elements = ['allen', 20, 'mary']
tuple_elements = ('allen', “mary”, 'alex')
Il codice verrà eseguito senza problemi, anche se l'elenco contiene una combinazione di numeri e stringhe.
7. Differenze di lunghezza
Liste e tuple variano anche in lunghezza e dimensione. Mentre le tuple variano in lunghezza, la lunghezza della tupla è fissa. Pertanto, la dimensione delle liste può essere modificata in qualsiasi momento, a differenza della lunghezza delle tuple che rimangono fisse una volta definite.
Esempio:
list_names = ['allen', 'mary', 'alex']
list_names.append ("roxy")
print(list_names)
Produzione:
['allen',' mary',' alex',' roxy']
L'output esatto potrebbe essere ottenuto anche utilizzando la funzione insert() invece della funzione append() quando si tratta di elenchi.
Tuttavia, la struttura dei dati della tupla non ci fornisce alcun modo per modificarne le dimensioni.
8. Casi d'uso
In circostanze diverse, almeno una di queste strutture dati funziona bene. Di solito dipende dal codificatore del programma su cui viene utilizzata la struttura dati. La struttura dei dati viene scelta in base al fatto che gli elementi di dati verranno riscritti in futuro.
Le tuple sono molto più vitali come strutture di dati rispetto alle liste perché:
- L'uso di tuple invece di elenchi può informare il codificatore o l'interprete di dati di non modificare le informazioni.
- Puoi anche ripristinare i dati senza chiavi usando una tupla.
- Le tuple sono equivalenti ai dizionari in Python.
- Le tuple memorizzate all'interno di un elenco sono molto facili da leggere.
La natura immutabile e hashable delle tuple le rende un sostituto perfetto per i dizionari. D'altra parte, non è possibile utilizzare gli elenchi per sostituire i dizionari perché non supportano la funzione _hash_().
Esempio:
key_val= {('alex', 'coraggioso'):124} #Valido
key_val = {['alex', 'coraggioso']:124} #Non valido
9. Liste di nidificazione e tuple
Tuple ed elenchi possono essere archiviati l'uno nell'altro. Le tuple nidificate possono contenere più tuple. Allo stesso modo, gli elenchi nidificati possono anche avere più elenchi.
10. Debug
È molto più facile eseguire il debug delle tuple in progetti più estesi rispetto agli elenchi. Ciò è dovuto alle caratteristiche immutabili delle tuple. Tuttavia, quando è coinvolta una quantità di dati molto più piccola, si suggerisce sempre di fare affidamento sugli elenchi. Le tuple sono anche molto più facili da tracciare perché non possono essere modificate, a differenza delle liste, dove i bug sono difficili da seguire.
11. Funzioni e operazioni
Python ha alcune funzioni utili che possono essere applicate a tuple ed elenchi, come ordinato, somma, tutto, min, max, lean, ecc.
Quando si tratta di operazioni, si possono trovare molte somiglianze nelle liste e nelle tuple. Tuttavia, gli elenchi hanno alcune funzionalità extra che sono assenti nelle tuple. Si tratta principalmente di operazioni di inserimento e inserimento, oltre alla rimozione e alla conservazione di oggetti.
Da asporto chiave
- Le tuple hanno meno funzionalità delle liste.
- La struttura della tupla è immutabile, mentre la struttura delle liste è mutevole.
- Le tuple hanno lunghezze fisse, mentre la lunghezza delle liste può variare.
- La sintassi della lista è rappresentata da parentesi quadre “[]”, mentre la sintassi delle tuple è presentata sotto forma di parentesi “()”.
- Le tuple consumano meno memoria rispetto alle liste.
- La struttura dei dati della tupla è la migliore quando sono coinvolti gli elementi di accesso.
- L'elenco delle funzioni è più indicato per eseguire specifiche operazioni di cancellazione e inserimento.
- Le iterazioni implicate nelle tuple sono più veloci di quelle implicate nelle liste.
- L'elenco può avere più metodi compilati, mentre la tupla non ne ha nessuno.
Scopri in dettaglio il nocciolo della questione di Python e i suoi concetti avanzati attraverso il Master of Science in Data Science di 18 mesi di upGrad programma in collaborazione con Liverpool John Moores University e IIIT Bangalore. Con docenti leader del settore a tua disposizione, oltre 500 ore di materiale didattico e lezioni di risoluzione dei dubbi, gli studenti hanno la possibilità di padroneggiare Python e altri fondamenti della scienza dei dati per orientare la propria carriera di conseguenza. Inoltre, il programma aiuta a sviluppare competenze in oltre 14 linguaggi e strumenti come Tableau, MySQL, Excel, MongoDB e altri.
Quindi, non esitare. Contattaci oggi stesso!
Quando usare tuple o liste?
Se hai bisogno che i tuoi elementi di dati siano di sola lettura, dovresti usare le tuple. I dati rimangono costanti nelle tuple a causa della loro disponibilità garantita di dati che non cambiano mai.
Gli elenchi, tuttavia, sono molto mutevoli. Pertanto, i dati in essi contenuti possono sempre essere modificati. Spostare, cambiare, eliminare e aggiungere elementi a un elenco è molto flessibile. Sono utilizzati al meglio quando i dati richiedono la modifica nelle fasi successive del ciclo del programma.
Le tuple sono più veloci rispetto alle liste?
Sì, la creazione di una tupla richiede molto meno tempo rispetto alla creazione di un elenco. Quando si creano elenchi, è necessario accedere a più di un blocco di memoria. Questo perché gli elementi nelle tuple non possono essere rimossi e sostituiti, mentre le caratteristiche nelle liste possono essere modificate più volte durante il ciclo del programma.
Dove vengono utilizzate le tuple e le liste nella vita reale?
Si può fare un elenco per memorizzare i passaggi necessari per cucinare un piatto specifico utilizzando una ricetta particolare. L'elenco prevede l'accesso sequenziale ai dati. Quindi, si può accedere ai passaggi in ordine. D'altra parte, Tuples può essere utilizzato per memorizzare dati come la longitudine o la latitudine della tua residenza. Questo perché una tupla è una raccolta di dati predefiniti. Puoi anche usare la stessa tupla per memorizzare le coordinate di posizione di altri luoghi.