I denne artikkelen vil vi lære viktige forskjeller mellom List og Tuples og hvordan du bruker disse to datastrukturen.
Lister og tupler lagrer ett eller flere objekter eller verdier i en bestemt rekkefølge. Objektene som er lagret i en liste eller tupel kan være av hvilken som helst type, inkludert ingentingstypen definert av None Keyword.
Lister og tupler er like i de fleste sammenhenger, men det er noen forskjeller som vi skal finne i denne artikkelen.
Syntaksforskjeller
Syntaks for liste og tuple er litt annerledes. Lister er omgitt av firkantede parenteser ()
og Tuples er omgitt av parentes ()
.
Eksempel 1.1: Opprette liste kontra opprette tuple
list_num = (1,2,3,4) tup_num = (1,2,3,4) print(list_num) print(tup_num)
Produksjon:
(1,2,3,4) (1,2,3,4)
Ovenfor definerte vi en variabel kalt list_num som inneholder en liste med tall fra 1
til 4
. Listen er omgitt av parentes ()
. Vi definerte også en variabel tup_num; som inneholder en talltall fra 1
til 4
. Tupelen er omgitt av parentes ()
.
I python har vi type()
funksjon som gir typen type opprettet.
Eksempel 1.2: Finn type datastruktur ved hjelp av type () -funksjonen
type(list_num) type(tup_num)
Produksjon:
liste tuple
Muterbar liste vs uforanderlige tupler
List har en foranderlig natur, dvs. at listen kan endres eller endres etter at den er opprettet i henhold til behov, mens tuple har uforanderlig natur, dvs. at tuple ikke kan endres eller endres etter at den ble opprettet.
Eksempel 2.1: Endre en vareliste kontra Tuple
list_num(2) = 5 print(list_num) tup_num(2) = 5
Produksjon:
(1,2,5,4) Traceback (siste anrop sist): Fil "python", linje 6, i TypeError: 'tuple' objekt støtter ikke varetildeling
I koden ovenfor tildelte 5
vi list_num ved indeks, 2
og vi fant 5
ved indeks 2
i utdata. Vi tildelte 5
også tup_num ved indeks, 2
og vi fikk type error
. Vi kan ikke endre tupelen på grunn av dens uforanderlige natur.
Merk: Siden tupelen er uforanderlig, er disse faste i størrelse og listen er variabel i størrelse.
Tilgjengelige operasjoner
Lister har mer innebygd funksjon enn for tupel. Vi kan bruke dir((object))
innebygd funksjon for å få alle tilknyttede funksjoner for liste og tuple.
Eksempel 3.1: Listekatalog
dir(list_num)
Produksjon:
('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__' __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __n__ , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear' kopier ',' teller ',' utvider ',' indeks ','insert ',' pop ',' remove ',' reverse ',' sort ')
Eksempel 3.2: Tuple Directory
dir(tup_num)
Produksjon:
('__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewar__ __gt__ ',' __hash__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce__ ',' __ ' , '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index')
Vi kan tydelig se at det er så mange tilleggsfunksjoner knyttet til en liste over en tuple. Vi kan gjøre innsettings- og popoperasjon, fjerne og sortere elementer i listen med innebygde funksjoner som ikke er tilgjengelig i Tuple.
Størrelse Sammenligning
Tuples-operasjonen har mindre størrelse enn listen, noe som gjør den litt raskere, men ikke så mye å nevne om før du har et stort antall elementer.
Eksempel 5.1: Beregn størrelsen på List vs. Tuple
a= (1,2,3,4,5,6,7,8,9,0) b= (1,2,3,4,5,6,7,8,9,0) print('a=',a.__sizeof__()) print('b=',b.__sizeof__())
Produksjon:
a = 104 b = 120
I ovennevnte kode har vi tupel a og liste b med samme elementer, men størrelsen på tuple er mindre enn listen.
Ulike brukstilfeller
Ved første øyekast kan det virke som om lister alltid kan erstatte tupler. Men tupler er ekstremt nyttige datastrukturer
- Å bruke en tuple i stedet for en liste kan gi programmereren og tolken et hint om at dataene ikke skal endres.
- Tuples brukes ofte som ekvivalent til en ordbok uten nøkler for å lagre data. For eksempel,
(('Swordfish', 'Dominic Sena', 2001), ('Snowden', 'Oliver Stone', 2016), ('Taxi Driver', 'Martin Scorsese', 1976))
Ovenstående eksempel inneholder tupler i listen som har en liste over filmer. - Lesing av data er enklere når tuplene lagres i en liste. For eksempel,
((2,4), (5,7), (3,8), (5,9))
er lettere å lese enn((2,4), (5,7), (3,8), (5,9))
Tuple kan også brukes som nøkkel i ordboken på grunn av deres hashable og uforanderlige natur, mens lister ikke brukes som nøkkel i en ordbok fordi listen ikke kan håndtere __hash__()
og ha en foranderlig natur.
key_val= (('alpha','bravo'):123) #Valid key_val = (('alpha','bravo'):123) #Invalid
Viktige punkter å huske:
- Den bokstavelige syntaksen til tuplene vises med parentes
()
mens den bokstavelige syntaksen til lister vises med parentes()
. - Lister har variabel lengde, tupel har fast lengde.
- List har foranderlig natur, tupel har uforanderlig natur.
- Listen har mer funksjonalitet enn tupelen.