logo

Forskjellen mellom List og Tuple i Python

Lister og Tuples i Python er to klasser av Python-datastrukturer. Listestrukturen er dynamisk og kan lett endres, mens tuppelstrukturen er statisk og ikke kan endres. Dette betyr at tupelen generelt er raskere enn listen. Lister er angitt med firkantede parenteser og tupler er merket med parentes.

Forskjeller mellom List og Tuple i Python

Sno

LISTE



TUPLE

1 Lister er foranderlig Tuples er uforanderlige
2Implikasjonen av iterasjoner er tidkrevendeImplikasjonen av iterasjoner er relativt raskere
3Listen er bedre for å utføre operasjoner, for eksempel innsetting og sletting.En Tuple-datatype er passende for å få tilgang til elementene
4Lister bruker mer minneTuple bruker mindre minne sammenlignet med listen
5Lister har flere innebygde metoderTuple har ikke mange innebygde metoder.
6Det er mer sannsynlig at uventede endringer og feil oppstårFordi tupler ikke endres, er de langt mindre utsatt for feil.

Python List vs Python Tuple

Test om tupler er uforanderlige og lister er foranderlige

Her skal vi sammenligne listen og tuple mutabilitetstester.

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)>

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

Vi kan se her tuppel kan ikke endres.

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

Produksjon:

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

Hvilken er bedre liste eller tuppel i Python?

For å sette dette svaret på prøve, la oss kjøre noen operasjoner på en Python Tuple og en Python List. Dette vil gi oss en bedre ide om hvilken som er en bedre liste eller tuppel i Python.

Test om Tuples er minneeffektive

Siden tupler er lagret i en enkelt minneblokk, krever de derfor ikke ekstra plass for nye objekter, mens listene er tildelt i to blokker, først den faste med alle Python objektinformasjon og for det andre en blokk i variabel størrelse for dataene.

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))>

Produksjon
96 80>

Test om implikasjonen av iterasjoner er relativt raskere i Tuples

Siden tupler er lagret i en enkelt minneblokk, krever de derfor ikke ekstra plass for nye objekter, da de er uforanderlige, mens listene er tildelt i to blokker, først den faste med alle Python objektinformasjon og for det andre en blokk i variabel størrelse for dataene som gjør dem enda raskere.

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)>

Produksjon

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

Mutable List vs. Immutable Tuples

I Python , støtter både lister og tupler en rekke operasjoner, inkludert indeksering, skjæring, sammenkobling og mer. Det er imidlertid noen forskjeller mellom operasjonene som er tilgjengelige for lister og tupler på grunn av henholdsvis deres mutabilitet og uforanderlighet.

Python-indeksering

Både lister og tupler lar deg få tilgang til individuelle elementer ved å bruke deres indeks, fra 0.

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

Produksjon
1 5>

Python-skjæring

Både lister og tupler lar deg trekke ut et undersett av elementer ved hjelp av slicing.

generell beskyttelsesfeil
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)>

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

Python-sammenkobling

Både lister og tupler kan settes sammen ved å bruke +-operatoren.

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)>

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

Merk - Det er imidlertid noen operasjoner som bare er tilgjengelige for lister, på grunn av deres mutbarhet.

Python vedlegg

Lister kan legges til med nye elementer ved å bruke append()-metoden.

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

Produksjon
[1, 2, 3, 4]>

Python Extend

Lister kan også utvides med en annen liste ved å bruke extend()-metoden.

sql server pivot
Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>

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

Python Fjern

Lister kan fjerne elementer ved å bruke remove()-metoden.

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

Produksjon
[1, 3, 4]>

Når skal man bruke Tuples Over Lists?

I Python , tupler og lister brukes begge til å lagre samlinger av data, men de har noen viktige forskjeller. Her er noen situasjoner der du kanskje vil bruke tupler i stedet for lister –

Uforanderlige data Tuples er uforanderlige, så når de først er generert, kan ikke innholdet endres. Dette gjør tuples til et passende alternativ for å lagre informasjon som ikke skal endres, for eksempel oppsettinnstillinger, konstante verdier eller annen informasjon som skal forbli den samme mens programmet kjører.

Opptreden Tuples er mer lette enn lister og kan være raskere å generere, få tilgang til og iterere gjennom siden de er uforanderlige. Å bruke en tuppel kan være mer effektiv enn å bruke en liste hvis du har en enorm samling av data som du trenger å lagre, hente og bruke regelmessig og som ikke trenger å endres.

Dataintegritet - Ved å sikre at dataenes struktur og innhold forblir konsistente, kan tuples brukes for å sikre dataintegritet. For å sikre at den som ringer er klar over hvor mye data han kan forvente, for eksempel hvis en funksjon returnerer en angitt mengde verdier, vil du kanskje returnere dem som en tuppel i stedet for en liste.