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 |
| 2 | Implikasjonen av iterasjoner er tidkrevende | Implikasjonen av iterasjoner er relativt raskere |
| 3 | Listen er bedre for å utføre operasjoner, for eksempel innsetting og sletting. | En Tuple-datatype er passende for å få tilgang til elementene |
| 4 | Lister bruker mer minne | Tuple bruker mindre minne sammenlignet med listen |
| 5 | Lister har flere innebygde metoder | Tuple har ikke mange innebygde metoder. |
| 6 | Det er mer sannsynlig at uventede endringer og feil oppstår | Fordi 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 beskyttelsesfeilPython3
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 pivotPython3
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.