Python-liste vs. tupler (med eksempler)

I denne artikel lærer vi nøgleforskelle mellem listen og tupler, og hvordan man bruger disse to datastrukturer.

Lister og tupler gemmer et eller flere objekter eller værdier i en bestemt rækkefølge. Objekterne, der er gemt på en liste eller tuple, kan være af enhver type, inklusive den intetype, der er defineret af None Keyword.

Lister og tupler er ens i de fleste sammenhænge, ​​men der er nogle forskelle, som vi vil finde i denne artikel.

Syntaksforskelle

Syntaks for liste og tuple er lidt anderledes. Lister er omgivet af firkantede parenteser ()og Tuples er omgivet af parentes ().

Eksempel 1.1: Oprettelse af liste vs. oprettelse af tuple

 list_num = (1,2,3,4) tup_num = (1,2,3,4) print(list_num) print(tup_num)

Produktion:

 (1,2,3,4) (1,2,3,4)

Ovenfor definerede vi en variabel kaldet list_num, som indeholder en liste med tal fra 1til 4. Listen er omgivet af parenteser (). Vi definerede også en variabel tup_num; der indeholder et tal på fra fra 1til 4. Tuplen er omgivet af parentes ().

I python har vi type()funktion, der giver den oprettede objekttype.

Eksempel 1.2: Find type datastruktur ved hjælp af type () -funktionen

 type(list_num) type(tup_num)

Produktion:

 liste tuple

Omskiftelig liste vs uforanderlige tupler

Listen har en ændret natur, dvs. listen kan ændres eller ændres efter dens oprettelse i henhold til behov, mens tuple har uforanderlig natur, dvs.

Eksempel 2.1: Rediger en vareliste kontra Tuple

 list_num(2) = 5 print(list_num) tup_num(2) = 5

Produktion:

 (1,2,5,4) Traceback (seneste opkald sidst): Fil "python", linje 6, i TypeError: 'tuple' objekt understøtter ikke varetildeling

I ovenstående kode tildelte vi 5list_num ved indeks, 2og vi fandt 5ved index 2i output. Vi tildelte også 5tup_num ved indeks, 2og vi fik type error. Vi kan ikke ændre tuplen på grund af dens uforanderlige natur.

Bemærk: Da tuplen er uforanderlig, er disse faste i størrelse, og listen er variabel i størrelse.

Tilgængelige operationer

Lister har mere indbygget funktion end tuple. Vi kan bruge den dir((object))indbyggede funktion til at få alle de tilknyttede funktioner til liste og tuple.

Eksempel 3.1: Listeoversigt

 dir(list_num)

Produktion:

('__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' kopi ',' tæl ',' udvid ',' indeks ','indsæt ',' pop ',' fjern ',' omvendt ',' sorter ')

Eksempel 3.2: Tuple Directory

 dir(tup_num)

Produktion:

 ('__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 tydeligt se, at der er så mange ekstra funktioner forbundet med en liste over en tuple. Vi kan udføre indsættelse og pop-operation, fjerne og sortere elementer på listen med indbyggede funktioner, som ikke er tilgængelige i Tuple.

Størrelse Sammenligning

Tuples-operation har mindre størrelse end listen, hvilket gør det lidt hurtigere, men ikke så meget at nævne, før du har et stort antal elementer.

Eksempel 5.1: Beregn størrelse på liste 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__())

Produktion:

 a = 104 b = 120

I ovenstående kode har vi tupel a og liste b med samme emner, men størrelsen på tuple er mindre end listen.

Forskellige anvendelsestilfælde

Ved første øjekast ser det ud til, at lister altid kan erstatte tupler. Men tupler er ekstremt nyttige datastrukturer

  1. Brug af en tuple i stedet for en liste kan give programmøren og tolken et tip om, at dataene ikke skal ændres.
  2. Tuples bruges almindeligvis som svarende til en ordbog uden nøgler til at gemme data. For eksempel,
     (('Swordfish', 'Dominic Sena', 2001), ('Snowden', 'Oliver Stone', 2016), ('Taxichauffør', 'Martin Scorsese', 1976))
    Ovenstående eksempel indeholder tupler inde i listen, der har en liste over film.
  3. Læsning af data er enklere, når tupler gemmes inde i en liste. For eksempel,
     ((2,4), (5,7), (3,8), (5,9))
    er lettere at læse end
     ((2,4), (5,7), (3,8), (5,9))

Tuple kan også bruges som nøgle i ordbogen på grund af deres hashable og uforanderlige natur, mens lister ikke bruges som nøgle i en ordbog, fordi listen ikke kan håndtere __hash__()og have en ændret natur.

 key_val= (('alpha','bravo'):123) #Valid key_val = (('alpha','bravo'):123) #Invalid 

Nøglepunkter at huske:

  1. Den bogstavelige syntaks for tupler vises med parenteser, ()mens den bogstavelige syntaks for lister er vist med firkantede parenteser ().
  2. Lister har variabel længde, tuple har fast længde.
  3. Liste har ændret natur, tuple har uforanderlig natur.
  4. Listen har mere funktionalitet end tuplen.

Interessante artikler...