Python List vs. Tuples (med eksempler)

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 1til 4. Listen er omgitt av parentes (). Vi definerte også en variabel tup_num; som inneholder en talltall fra 1til 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 5vi list_num ved indeks, 2og vi fant 5ved indeks 2i utdata. Vi tildelte 5også tup_num ved indeks, 2og 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

  1. Å bruke en tuple i stedet for en liste kan gi programmereren og tolken et hint om at dataene ikke skal endres.
  2. 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.
  3. 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:

  1. Den bokstavelige syntaksen til tuplene vises med parentes ()mens den bokstavelige syntaksen til lister vises med parentes ().
  2. Lister har variabel lengde, tupel har fast lengde.
  3. List har foranderlig natur, tupel har uforanderlig natur.
  4. Listen har mer funksjonalitet enn tupelen.

Interessante artikler...