Les llistes i les tuples a Python són dues classes d'estructures de dades de Python. L'estructura de la llista és dinàmica i es pot canviar fàcilment, mentre que l'estructura de la tupla és estàtica i no es pot canviar. Això vol dir que la tupla és generalment més ràpida que la llista. Les llistes es denoten amb claudàtors i les tuples es denoten amb parèntesis.
Diferències entre List i Tuple a Python
Sno | LLISTA | TUPLE |
|---|---|---|
| 1 | Llistes són mutable | Tuples són immutables |
| 2 | La implicació de les iteracions requereix temps | La implicació de les iteracions és comparativament més ràpida |
| 3 | La llista és millor per realitzar operacions, com ara la inserció i la supressió. | Un tipus de dades Tuple és adequat per accedir als elements |
| 4 | Les llistes consumeixen més memòria | Tuple consumeix menys memòria en comparació amb la llista |
| 5 | Les llistes tenen diversos mètodes integrats | Tuple no té molts mètodes integrats. |
| 6 | És més probable que es produeixin canvis i errors inesperats | Com que les tuples no canvien, són molt menys propenses a errors. |
Python List vs Python Tuple
Comprova si les tuples són immutables i les llistes són mutables
Aquí compararem la llista i les proves de mutabilitat de tuples.
Python 3 # 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)> Sortida
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>
Ho podem veure aquí tupla no es pot modificar.
Python 3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
Sortida:
és una relació
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Quina és millor llista o tupla a Python?
Per posar a prova aquesta resposta, anem a executar algunes operacions en una tupla de Python i una llista de Python. Això ens donarà una millor idea de quina és una llista o tupla millor a Python.
Comprova si les tuples són eficients en memòria
Com que les tuples s'emmagatzemen en un únic bloc de memòria, no requereixen espai addicional per als nous objectes, mentre que les llistes s'assignen en dos blocs, primer el fix amb tots els elements. Python informació de l'objecte i, en segon lloc, un bloc de mida variable per a les dades.
Python 3 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))> Sortida
96 80>
Comproveu si la implicació de les iteracions és comparativament més ràpida en tuples
Com que les tuples s'emmagatzemen en un únic bloc de memòria, per tant, no requereixen espai addicional per als nous objectes ja que són immutables, mentre que les llistes s'assignen en dos blocs, primer el fix amb tots els elements. Python informació de l'objecte i segon un bloc de mida variable per a les dades que les fa encara més ràpides.
Python 3 # 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)> Sortida
Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>
Llista mutable vs. tuples immutables
En Python , tant les llistes com les tuples admeten una sèrie d'operacions, com ara indexació, segmentació, concatenació i molt més. Tanmateix, hi ha algunes diferències entre les operacions que estan disponibles per a llistes i tuples a causa de la seva mutabilitat i immutabilitat, respectivament.
Indexació de Python
Tant les llistes com les tuples us permeten accedir a elements individuals mitjançant el seu índex, a partir de 0.
Python 3 my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>
Sortida
1 5>
Python Slicing
Tant les llistes com les tuples us permeten extreure un subconjunt d'elements mitjançant el tall.
executant scripts a linuxPython 3
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)>
Sortida
[2, 3] (6, 7, 8)>
Concatenació de Python
Tant les llistes com les tuples es poden concatenar mitjançant l'operador +.
Python 3 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)>
Sortida
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>
Nota - Tanmateix, hi ha algunes operacions que només estan disponibles per a llistes, a causa de la seva mutabilitat.
Apèndix Python
Les llistes es poden afegir amb nous elements mitjançant el mètode append().
Python 3 my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>
Sortida
[1, 2, 3, 4]>
Python Extend
Les llistes també es poden ampliar amb una altra llista utilitzant el mètode extend().
ascii d'a en javaPython 3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>
Sortida
[1, 2, 3, 4, 5, 6]>
Eliminar Python
Llistes es poden eliminar elements mitjançant el mètode remove().
Python 3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
Sortida
[1, 3, 4]>
Quan utilitzar tuples sobre llistes?
En Python , les tuples i les llistes s'utilitzen per emmagatzemar col·leccions de dades, però tenen algunes diferències importants. Aquí hi ha algunes situacions en què és possible que vulgueu utilitzar tuples en lloc de llistes:
Dades immutables – Tuples són immutables, per tant, un cop generats, el seu contingut no es pot canviar. Això fa que les tuples siguin una opció adequada per emmagatzemar informació que no hauria de canviar, com ara paràmetres de configuració, valors constants o altra informació que hauria de romandre igual mentre s'executa el programa.
Rendiment – Tuples són més lleugers que les llistes i poden ser més ràpids de generar, accedir i repetir, ja que són immutables. L'ús d'una tupla pot ser més eficaç que l'ús d'a llista si teniu una gran col·lecció de dades que necessiteu emmagatzemar, recuperar i utilitzar regularment i no cal que aquestes dades es modifiquin.
Integritat de les dades - En garantir que l'estructura i el contingut de les dades es mantenen coherents, es poden utilitzar tuples per garantir la integritat de les dades. Per assegurar-se que la persona que truca és conscient de quantes dades s'espera, per exemple, si una funció torna una quantitat determinada de valors, és possible que vulgueu tornar-los com una tupla en lloc d'una llista.