Python-lista és tömbök (példákkal)

Ebben a cikkben megtudhatjuk a lista és a tömbök közötti legfontosabb különbségeket, valamint a két adatstruktúra használatát.

A listák és a tömbök egy vagy több objektumot vagy értéket tárolnak meghatározott sorrendben. A listában vagy a duplában tárolt objektumok bármilyen típusúak lehetnek, beleértve a None kulcsszó által definiált semmit.

A listák és a tuplék hasonlóak a legtöbb összefüggésben, de vannak olyan különbségek, amelyeket ebben a cikkben fogunk találni.

Szintaxis különbségek

A lista és a kettő szintaxisa kissé eltér. A listákat szögletes zárójelek (), a Tupleket zárójelek veszik körül ().

1.1. Példa: Lista létrehozása vs. Tuple létrehozása

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

Kimenet:

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

Fent definiáltunk egy list_num nevű változót, amely számok listáját tartalmazza a -tól 1a 4. -Ig . A listát zárójelek veszik körül (). Meghatároztuk a tup_num változót is; amely egy számot tartalmaz kettőtől 1ig 4. A duplát zárójel veszi körül ().

A pythonban van egy type()függvényünk, amely megadja a létrehozott objektum típusát.

1.2. Példa: Keresse meg az adatstruktúra típusát a type () függvény használatával

 type(list_num) type(tup_num)

Kimenet:

 lista duplája

Változtatható lista vs megváltoztathatatlan tincs

A lista változtatható jellegű, vagyis a lista létrehozása után az igényeknek megfelelően módosítható vagy módosítható, míg a duplának változhatatlan jellege van, azaz a duplát a létrehozása után nem lehet megváltoztatni vagy módosítani.

2.1. Példa: Tétellista módosítása vs Tuple

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

Kimenet:

 (1,2,5,4) Traceback (a legutóbbi hívás utoljára): A "python" fájl 6. sora a TypeError objektumban: 'tuple' objektum nem támogatja az elem hozzárendelését

A fenti kódban 5a list_num értéket rendeltük az indexhez, 2és 5az indexnél találtuk meg 2a kimenetet. Ezenkívül hozzárendeltük 5a tup_num indexhez, 2és meg is kaptuk type error. Nem módosíthatjuk a duplát megváltoztathatatlan jellege miatt.

Megjegyzés: Mivel a tuple változhatatlan, ezek rögzített méretűek és a lista változó méretű.

Elérhető műveletek

A listáknak több beépített funkciója van, mint a duplának. Tudjuk használni dir((object))beépített funkció, hogy az összes kapcsolódó funkciók listáját, és tuple.

3.1. Példa: Lista könyvtár

 dir(list_num)

Kimenet:

('__add__', '__class__', '__contain__', '__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__', 'append', 'append', 'append', copy ',' count ',' extension ',' index ','beszúrni ',' pop ',' eltávolítani ',' fordított ',' rendezni ')

3.2. Példa: Tuple Directory

 dir(tup_num)

Kimenet:

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

Világosan láthatjuk, hogy annyi további funkció van társítva egy listához egy duplán. Beillesztési és pop-műveletet végezhetünk, eltávolíthatjuk és rendezhetjük az elemeket a listából beépített funkciókkal, amelyek nem állnak rendelkezésre a Tuple-ban.

Méret összehasonlítás

A sorrendű műveletek mérete kisebb, mint a listaé, ami kissé gyorsabbá teszi, de nem kell annyit említeni, amíg hatalmas számú elem van.

5.1. Példa: Számítsa ki a List és Tuple méretét

 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__())

Kimenet:

 a = 104 b = 120

A fenti kódban az a és a b listát ugyanazokkal az elemekkel láttuk el, de a duplája mérete kisebb, mint a lista.

Különböző használati esetek

Első látásra úgy tűnhet, hogy a listák mindig helyettesíthetik a sorokat. De a sorrend rendkívül hasznos adatstruktúra

  1. A lista helyett egy duplát használva a programozó és a tolmács arra utalhat, hogy az adatokat nem szabad megváltoztatni.
  2. A tömböket általában kulcsok nélküli szótár megfelelőjeként használják az adatok tárolására. Például,
     ((„Kardhal”, „Dominic Sena”, 2001), („Snowden”, „Oliver Stone”, 2016), („Taxisofőr”, „Martin Scorsese”, 1976))
    A fenti példa a filmek listáját tartalmazó listát tartalmaz.
  3. Az adatok olvasása egyszerűbb, ha a sorokat egy listán tároljuk. Például,
     ((2,4), (5,7), (3,8), (5,9))
    könnyebben olvasható, mint
     ((2,4), (5,7), (3,8), (5,9))

A Tuple kulcsszavaként is használható a szótárban, mivel azok hasábosak és megváltoztathatatlanok, míg a listákat nem használják kulcsként egy szótárban, mert a listák nem kezelhetők __hash__()és megváltoztatható jellegűek.

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

Fontos megjegyezni:

  1. A sorok szó szerinti szintaxisa zárójelben, ()míg a listák szó szerinti szintaxisa szögletes zárójelben látható ().
  2. A listák hossza változó, a duplának fix a hossza.
  3. A lista megváltoztatható, a duplának változhatatlan jellege van.
  4. A lista több funkcióval rendelkezik, mint a duplázás.

érdekes cikkek...