Lista Python vs. Tuples (cu exemple)

În acest articol vom învăța diferențele cheie dintre Listă și Tuples și cum să utilizați aceste două structuri de date.

Listele și Tuples stochează unul sau mai multe obiecte sau valori într-o anumită ordine. Obiectele stocate într-o listă sau tuplu pot fi de orice tip, inclusiv tipul nimic definit de cuvântul cheie None.

Listele și tuplurile sunt similare în majoritatea contextului, dar există câteva diferențe pe care le vom găsi în acest articol.

Diferențe de sintaxă

Sintaxa listei și a tuplului este ușor diferită. Listele sunt înconjurate de paranteze pătrate, ()iar tuplurile sunt înconjurate de paranteză ().

Exemplul 1.1: Crearea listei vs. Crearea tuplului

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

Ieșire:

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

Mai sus, am definit o variabilă numită list_num care conține o listă de numere de la 1la 4. Lista este înconjurată de paranteze (). De asemenea, am definit o variabilă tup_num; care conține un tuplu de număr de la 1până la 4. Tuplul este înconjurat de paranteză ().

În Python avem type()funcția care dă tipul de obiect creat.

Exemplul 1.2: Găsiți tipul de structură de date folosind funcția type ()

 type(list_num) type(tup_num)

Ieșire:

 listă tuplu

Lista mutabilă vs Tupluri imuabile

Lista are natura mutabilă, adică lista poate fi modificată sau modificată după crearea sa în funcție de nevoi, în timp ce tuplul are o natură imuabilă, adică, tuplul nu poate fi modificat sau modificat după crearea sa.

Exemplul 2.1: Modificați o listă de elemente vs. Tuple

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

Ieșire:

 (1,2,5,4) Traceback (ultimul apel cel mai recent): Fișierul "python", linia 6, în TypeError: obiectul 'tuplu' nu acceptă atribuirea articolului

În codul de mai sus am atribuit 5list_num la index 2și am găsit 5la index 2în ieșire. De asemenea, am atribuit 5tup_num la index 2și am obținut type error. Nu putem modifica tuplul datorită naturii sale imuabile.

Notă: Deoarece tuplul este imuabil, acestea sunt fixe în dimensiune, iar listele sunt variabile în dimensiune.

Operațiuni disponibile

Listele au mai multe funcții integrate decât cea de tuplu. Putem folosi dir((object))funcția încorporată pentru a obține toate funcțiile asociate pentru listă și tuplu.

Exemplul 3.1: Listă Director

 dir(list_num)

Ieșire:

('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__ __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __ne ' , '__reduce__', '__reduce_ex__', '__repr__', '__versed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear' copiați ',' numărați ',' extindeți ',' indexați ','inserare ',' pop ',' eliminare ',' inversare ',' sortare ')

Exemplul 3.2: Directorul Tuple

 dir(tup_num)

Ieșire:

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

Putem vedea clar că există atât de multe funcționalități suplimentare asociate cu o listă peste un tuplu. Putem efectua operații de inserare și pop, eliminând și sortând elementele din listă cu funcții încorporate care nu sunt disponibile în tuplu.

Compararea dimensiunilor

Operația Tuples are o dimensiune mai mică decât cea a listei, ceea ce o face puțin mai rapidă, dar nu prea mult de menționat până când nu aveți un număr mare de elemente.

Exemplul 5.1: Calculați dimensiunea 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__())

Ieșire:

 a = 104 b = 120

În codul de mai sus avem tuplul a și lista b cu aceleași elemente, dar dimensiunea tuplului este mai mică decât lista.

Diferite cazuri de utilizare

La prima vedere, s-ar putea părea că listele pot înlocui întotdeauna tuplurile. Dar tuplurile sunt structuri de date extrem de utile

  1. Utilizarea unui tuplu în locul unei liste poate oferi programatorului și interpretului o sugestie că datele nu ar trebui modificate.
  2. Tuplurile sunt utilizate în mod obișnuit ca echivalentul unui dicționar fără chei pentru stocarea datelor. De exemplu,
     ((„Swordfish”, „Dominic Sena”, 2001), („Snowden”, „Oliver Stone”, 2016), („Taxi Driver”, „Martin Scorsese”, 1976))
    Exemplul de mai sus conține tupluri din lista care conține o listă de filme.
  3. Citirea datelor este mai simplă atunci când tuplurile sunt stocate într-o listă. De exemplu,
     ((2,4), (5,7), (3,8), (5,9))
    este mai ușor de citit decât
     ((2,4), (5,7), (3,8), (5,9))

Tuple poate fi, de asemenea, utilizat ca cheie în dicționar datorită naturii lor lavabile și imuabile, în timp ce Listele nu sunt utilizate ca cheie într-un dicționar, deoarece lista nu poate gestiona __hash__()și are natura mutabilă.

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

Puncte cheie de reținut:

  1. Sintaxa literală a tuplurilor este prezentată între paranteze, în ()timp ce sintaxa literală a listelor este afișată între paranteze drepte ().
  2. Listele au lungime variabilă, tuplul are lungime fixă.
  3. Lista are o natură mutabilă, tuplul are o natură imuabilă.
  4. Lista are mai multe funcționalități decât tuplul.

Articole interesante...