logo

Differenza tra lista e tupla in Python

Elenchi e tuple in Python sono due classi di strutture dati Python. La struttura dell'elenco è dinamica e facilmente modificabile mentre la struttura della tupla è statica e non può essere modificata. Ciò significa che la tupla è generalmente più veloce della lista. Le liste sono indicate da parentesi quadre e le tuple sono indicate da parentesi.

Differenze tra Lista e Tupla in Python

Sno

ELENCO



TUPLA

1 Elenchi Sono mutevole Tuple sono immutabili
2L'implicazione delle iterazioni richiede molto tempoL'implicazione delle iterazioni è relativamente più veloce
3L'elenco è utile per eseguire operazioni come l'inserimento e la cancellazione.Un tipo di dati Tuple è appropriato per accedere agli elementi
4Gli elenchi consumano più memoriaLa tupla consuma meno memoria rispetto all'elenco
5Gli elenchi hanno diversi metodi integratiTuple non ha molti metodi integrati.
6È più probabile che si verifichino modifiche ed errori imprevistiPoiché le tuple non cambiano, sono molto meno soggette a errori.

Elenco Python e tupla Python

Verifica se le tuple sono immutabili e le liste sono mutabili

Qui confronteremo i test di mutabilità dell'elenco e della tupla.

Python3
# Creating a List with # the use of Numbers # code to test that tuples are mutable List = [1, 2, 4, 4, 3, 3, 3, 6, 5] print('Original list ', List) List[3] = 77 print('Example to show mutability ', List)>

Produzione
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>

Possiamo vedere qui tupla non può essere modificato.

Python3
# code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>

Produzione:

primavera e primavera mvc
Traceback (most recent call last):  File 'e0eaddff843a8695575daec34506f126.py', line 3, in  tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>

Qual è la migliore lista o tupla in Python?

Per mettere alla prova questa risposta, eseguiamo alcune operazioni su una tupla Python e una lista Python. Questo ci darà un'idea migliore di quale sia la lista o la tupla migliore in Python.

Verifica se le tuple sono efficienti in termini di memoria

Dato che le tuple sono memorizzate in un singolo blocco di memoria, non richiedono spazio aggiuntivo per nuovi oggetti mentre le liste sono allocate in due blocchi, primo quello fisso con tutti i Pitone informazioni sull'oggetto e in secondo luogo un blocco di dimensioni variabili per i dati.

Python3
import sys a_list = [] a_tuple = () a_list = ['Geeks', 'For', 'Geeks'] a_tuple = ('Geeks', 'For', 'Geeks') print(sys.getsizeof(a_list)) print(sys.getsizeof(a_tuple))>

Produzione
96 80>

Verifica se l'implicazione delle iterazioni è relativamente più veloce nelle tuple

Poiché le tuple sono archiviate in un unico blocco di memoria, quindi, non richiedono spazio aggiuntivo per nuovi oggetti in quanto sono immutabili mentre le liste sono allocate in due blocchi, primo quello fisso con tutte le Pitone informazioni sugli oggetti e in secondo luogo un blocco di dimensioni variabili per i dati che li rende ancora più veloci.

Python3
# code import sys, platform import time l=list(range(100000001)) t=tuple(range(100000001)) start = time.time_ns() for i in range(len(t)): a = t[i] end = time.time_ns() print('Total lookup time for Tuple: ', end - start) start = time.time_ns() for i in range(len(l)): a = l[i] end = time.time_ns() print('Total lookup time for LIST: ', end - start)>

Produzione

Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>

Elenco mutabile e tuple immutabili

In Pitone , sia gli elenchi che le tuple supportano una serie di operazioni, tra cui l'indicizzazione, l'affettatura, la concatenazione e altro ancora. Tuttavia, esistono alcune differenze tra le operazioni disponibili per le liste e le tuple a causa della loro mutabilità e immutabilità, rispettivamente.

Indicizzazione Python

Sia le liste che le tuple consentono di accedere ai singoli elementi utilizzando il loro indice, a partire da 0.

Python3
my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>

Produzione
1 5>

Affettatura di pitone

Sia gli elenchi che le tuple consentono di estrarre un sottoinsieme di elementi utilizzando l'affettamento.

leggi di equivalenza
Python3
my_list = [1, 2, 3, 4, 5] my_tuple = (6, 7, 8, 9, 10) print(my_list[1:3]) # Output: [2, 3] print(my_tuple[:3]) # Output: (6, 7, 8)>

Produzione
[2, 3] (6, 7, 8)>

Concatenazione di Python

Sia le liste che le tuple possono essere concatenate utilizzando l'operatore +.

Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] tuple1 = (7, 8, 9) tuple2 = (10, 11, 12) print(list1 + list2) # Output: [1, 2, 3, 4, 5, 6] print(tuple1 + tuple2) # Output: (7, 8, 9, 10, 11, 12)>

Produzione
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>

Nota - Tuttavia, alcune operazioni sono disponibili solo per gli elenchi, a causa della loro mutabilità.

Aggiungi Python

Gli elenchi possono essere aggiunti con nuovi elementi utilizzando il metodo append().

Python3
my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>

Produzione
[1, 2, 3, 4]>

Python Estendi

Le liste possono anche essere estese con un'altra lista utilizzando il metodo extend().

come disattivare la modalità sviluppatore
Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>

Produzione
[1, 2, 3, 4, 5, 6]>

Rimuovi Python

Elenchi possono essere rimossi elementi utilizzando il metodoremove().

Python3
my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>

Produzione
[1, 3, 4]>

Quando utilizzare le tuple sugli elenchi?

In Pitone , le tuple e gli elenchi vengono entrambi utilizzati per archiviare raccolte di dati, ma presentano alcune importanti differenze. Ecco alcune situazioni in cui potresti voler utilizzare le tuple invece delle liste:

Dati immutabili Tuple sono immutabili, quindi una volta generati il ​​loro contenuto non può essere modificato. Ciò rende le tuple un'opzione adatta per memorizzare informazioni che non dovrebbero cambiare, come impostazioni di configurazione, valori costanti o altre informazioni che dovrebbero rimanere le stesse mentre il programma è in esecuzione.

Prestazione Tuple sono più leggeri degli elenchi e potrebbero essere più rapidi da generare, accedere e scorrere poiché sono immutabili. Usare una tupla può essere più efficace che usare a elenco se disponi di un'enorme raccolta di dati che devi archiviare, recuperare e utilizzare regolarmente e che non è necessario modificare i dati.

Integrità dei dati - Garantendo che la struttura e i contenuti dei dati rimangano coerenti, è possibile utilizzare le tuple per garantire l'integrità dei dati. Per assicurarsi che il chiamante sia consapevole di quanti dati aspettarsi, ad esempio, se una funzione ritorna un determinato numero di valori, potresti volerli restituire come una tupla anziché come un elenco.