Popis Pythona u odnosu na korijene (s primjerima)

U ovom ćemo članku naučiti ključne razlike između Popisa i Tuplesa i kako koristiti ove dvije strukture podataka.

Popisi i korijeni pohranjuju jedan ili više objekata ili vrijednosti u određenom redoslijedu. Objekti pohranjeni na popisu ili naboru mogu biti bilo koje vrste, uključujući tip ništa definiran ključnom riječi None.

Popisi i korijeni slični su u većini konteksta, ali postoje neke razlike koje ćemo pronaći u ovom članku.

Sintaksne razlike

Sintaksa popisa i tuple malo se razlikuje. Popisi su okruženi ()uglastim zagradama, a Tuple u zagradama ().

Primjer 1.1: Stvaranje popisa nasuprot stvaranju tuple

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

Izlaz:

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

Iznad smo definirali varijablu nazvanu list_num koja sadrži popis brojeva od 1do 4. Popis je okružen zagradama (). Također, definirali smo varijablu tup_num; koji sadrži korpicu broja od 1do 4. Korpa je okružena zagradama ().

U pythonu imamo type()funkciju koja daje vrstu stvorenog objekta.

Primjer 1.2: Pronađite vrstu strukture podataka pomoću funkcije type ()

 type(list_num) type(tup_num)

Izlaz:

 popis tuple

Promjenjivi popis protiv nepromjenjivih korpica

Popis ima promjenjivu prirodu, tj. Popis se može mijenjati ili mijenjati nakon stvaranja u skladu s potrebama, dok tuple ima nepromjenjivu prirodu, tj. Nabor se ne može mijenjati ili mijenjati nakon stvaranja.

Primjer 2.1: Izmijenite Popis stavki u odnosu na Tuple

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

Izlaz:

 (1,2,5,4) Traceback (najnoviji zadnji poziv): Datoteka "python", red 6, u TypeError: objekt 'tuple' ne podržava dodjelu stavki

U gornjem kodu dodijelili 5smo listu_broj na indeksu 2i pronašli smo 5na indeksu 2u izlazu. Također, dodijelili 5smo tup_num na indeksu 2i dobili smo type error. Ne možemo modificirati tuple zbog njegove nepromjenjive prirode.

Napomena: Kako je korpica nepromjenjiva, one su fiksne veličine, a popis promjenjive veličine.

Dostupne operacije

Popisi imaju ugrađeniju funkciju više od funkcije tuple. dir((object))Ugrađenu funkciju možemo koristiti za dobivanje svih povezanih funkcija za popis i tuple.

Primjer 3.1: Imenik popisa

 dir(list_num)

Izlaz:

('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__get __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __ne__ ',' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'dodaj', 'dodaj,' kopiraj ',' broji ',' produži ',' indeks ','umetnuti ',' pop ',' ukloniti ',' preokrenuti ',' sortirati ')

Primjer 3.2: Katalog tuple

 dir(tup_num)

Izlaz:

 ('__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__get', __get ', __gt__ ',' __hash__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce__ ',' __reduce__ ',__ , '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index')

Jasno možemo vidjeti da postoji toliko mnogo dodatnih funkcionalnosti povezanih s popisom preko korijena. Možemo raditi umetanje i iskakanje, uklanjanje i sortiranje elemenata s popisa s ugrađenim funkcijama koji nisu dostupni u Tupleu.

Usporedba veličina

Operacija korijena ima manju veličinu od one liste, što je čini malo bržom, ali ne toliko za spominjati dok ne dobijete ogroman broj elemenata.

Primjer 5.1: Izračunajte veličinu popisa u odnosu na 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__())

Izlaz:

 a = 104 b = 120

U gornjem kodu imamo nabor a i popis b s istim stavkama, ali veličina nabora je manja od popisa.

Slučajevi različite upotrebe

Na prvi pogled može se činiti da popisi uvijek mogu zamijeniti korice. No, korijeni su izuzetno korisne strukture podataka

  1. Korištenje tuple umjesto popisa programeru i tumaču može dati naslutiti da podatke ne treba mijenjati.
  2. Korice se obično koriste kao ekvivalent rječnika bez ključeva za pohranu podataka. Na primjer,
     (('' Sabljarka '', 'Dominic Sena', 2001.), ('Snowden', 'Oliver Stone', 2016.), ('Taksist', 'Martin Scorsese', 1976.))
    Gornji primjer sadrži korice na popisu koji sadrži popis filmova.
  3. Čitanje podataka jednostavnije je kad se korice spremaju na popis. Na primjer,
     ((2,4), (5,7), (3,8), (5,9))
    je lakši za čitanje nego
     ((2,4), (5,7), (3,8), (5,9))

Tuple se također može koristiti kao ključ u rječniku zbog njihove raspršive i nepromjenjive prirode, dok se popisi ne koriste kao ključ u rječniku jer se popis ne može nositi __hash__()i ima promjenjivu prirodu.

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

Ključne točke koje treba zapamtiti:

  1. Doslovna sintaksa torki prikazana je u zagradama, ()dok je doslovna sintaksa popisa prikazana u uglastim zagradama ().
  2. Popisi imaju promjenjivu duljinu, tuple ima fiksnu duljinu.
  3. Popis ima promjenjivu prirodu, korijen ima nepromjenjivu prirodu.
  4. Popis ima više funkcionalnosti od korpice.

Zanimljivi članci...