Bevezetés a Python-lista megértésébe

A Python Lista megértése egy másik módszer a listák iterációs művelettel történő létrehozására. Ugyanúgy működik, mint a hurok, de az LC kifejezetten a listák visszatérítésére szolgál. A listamegértéseknek vannak kifejezései zárójelben, például egy normál lista létrehozásakor, a kifejezés az összes elemre végrehajtódik.

A listamegértések nagyon hasznosak az adattudományban, amikor egy listát olvasnak / oszlopneveket szűrnek / elemeket távolítanak el a listákból stb. Noha hurkokat és lambda funkciókat is használhatunk valamilyen művelet végrehajtására, a listamegértés elegáns és egyszerű módot kínál ugyanazok ábrázolására.
A listamegértések felhasználhatók a térkép (), a redukció () és a szűrés () módszerek helyettesítésére.
A lista megértése olyan, mint a Set Theory a középiskolás órákon.

Példa:

( x: x is a natural number greater than 15 )
( x: x is a vowel in word 'Data Science', x is a vowel )

Hozzuk létre a listamegértést a fenti két állításhoz.

(x for x in range(0, 20) if x>15) (x for x in 'Data Science' if x in ('a', 'e', 'i', 'o', 'u'))

Kimenet:

(16, 17, 18, 19) ('a', 'a', 'i', 'e', ​​'e')

A listamegértés könnyen érthető és megvalósítható. Alapvetően ezeket táblákon hozzák létre. Három szempontot kell figyelembe venni, amikor a szintaxist írjuk a listák áttekintésére.

  1. A kimenet paramétere
  2. Megismételhető
  3. Körülmények

A szintaxisnak a fentiek közül kettő vagy a fentiek közül három lehet szintaxis a lista megértése érdekében.

Szintaxis:

(output parameter | The Iterable)
(output Parameter | The Iterable | Condition )

Példák a Python-lista megértésére

Itt megvitatjuk, hogyan lehet a lista megértését python segítségével használni. A példákat másképp fogjuk látni, mivel a hurokhoz fogjuk futtatni, majd a listamegértések felhasználásával készítjük el ezeket.

1. példa: A tökéletes négyzetek megtalálása

Íme néhány példa a tökéletes négyzetekre, különböző feltételek mellett, alább:

1. A hurokhoz

for i in range(1, 30):
if int(i**0.5)==i**0.5:
print(i)

2. A listáttekintések használata

(x for x in range(1, 30) if int(x**0.5)==x**0.5)

Kimenet:

2. példa: Csak mássalhangzókat szerezhet a mondatból

Itt egy önkényes mondatot fogunk venni, és megpróbáljuk kimenetelünkként a mássalhangzókat szerezni a mondatban.

1. A For Loop használata

def consonants_for(sentence):
vowels = 'aeiou'
consonants = () for x in sentence:
if x not in vowels:
consonants.append(x)
return ''.join(consonants)
sentence = 'we are studying list comprehensions'
print("With For Loop : " + consonants_for(sentence))

Kimenet:

A For Loop használatával: wrd stdyng lst cmprhnsns

2. A Lista-megértés használata

def consonants_lc(sentence):
vowels = 'aeiou'
return ''.join(( x for x in sentence if x not in vowels))
sentence = 'we are studying list comprehensions'
print("Using List Compr: " + consonants_lc(sentence))

Kimenet:

A List Compr használata: wr stdyng lst cmprhnsns

3. példa: Szótár létrehozása kettőből, a listáktól eltérően

Íme néhány példa a különféle feltételekkel ellátott szótárra:

1. A For Loop használata

def dict_for(keys, values):
dictionary = ()
for i in range(len(keys)):
dictionary(keys(i)) = values(i) return dictionary
Movie = ('RDB', 'Wanted', 'DDLG', 'Sholay', 'War', ) Actor = ('Aamire', 'Salman', 'SRK', 'Amitabh', 'Hritik') print("FOR-loop result: " + str(dict_for(Movie, Actor)))

Kimenet:

FOR-hurok eredménye: ('RDB': 'Aamire', 'Wanted': 'Salman', 'DDLG': 'SRK', 'Sholay': 'Amitabh', 'War': 'Hritik')

2. A Lista-megértés használata

def dict_lc(keys, values):
return ( keys(i) : values(i) for i in range(len(keys)) )
Movie = ('RDB', 'Wanted', 'DDLG', 'Sholay', 'War', ) Actor = ('Aamire', 'Salman', 'SRK', 'Amitabh', 'Hritik') print("LC result : " + str(dict_lc(Movie, Actor)))

Kimenet:

LC eredmény: ('RDB': 'Aamire', 'Wanted': 'Salman', 'DDLG': 'SRK', 'Sholay': 'Amitabh', 'War': 'Hritik')

A Python lista megértésének előnyei

A listamegértések ugyanazt a feladatot hajtják végre, de másképp!

A listamegértésnek számos előnye van a hurok és más módszerekkel szemben. Néhány előnye a következő:

  1. A listaértések könnyen érthetők, és elegánssá teszik a kódot. A programot egyszerű kifejezésekkel tudjuk írni.
  2. A listamegértés sokkal gyorsabb, mint a hurok és más módszerek, például egy térkép esetén. (Ugyanezt magyarázzuk az alábbi példában:

Az 1. példát vesszük referenciaként, és kiszámoljuk az időt, amelyet különféle módszerekkel igényelnek ugyanazon funkció végrehajtásához. Először meglátjuk a „hurok” elvégzéséhez szükséges időt, majd a térkép () módszerrel vesszük az időt, és végre látjuk a listamegértés által igénybe vett időt.

Egy táblázat mutatja a különböző technikák által igényelt időt.

1. A hurok számára

Példa az alább megadott hurok használatára:

Kód:

def perf_square(x):
output = () for i in x:
if int(i**0.5)==i**0.5:
output.append(i)
return output
%timeit perf_square(range(1, 30))

2. Térkép módszer

Példa az alább megadott térképezési módszerre:

Kód:

def perf_square_map(x):
return map(lambda i: i**0.5==i**0.5, x)
%timeit perf_square_map(range(1, 30))

3. Sorolja fel a megértéseket

Példa az alább megadott listamegértés felhasználásával:

Kód:

def perf_square_lc(x):
return (i**0.5 == i**0.5 for i in x) %timeit perf_square_lc(range(1, 30))

Kimenet:

EljárásIdő
Hurokhoz787 ns
Térkép () módszer518 ns
Lista felfogások276 ns

Világos, hogy a Lista megértésének futási ideje 2, 85-szer gyorsabb, mint a hurok esetében, és 1, 87-szer gyorsabb, mint a térkép módszer. A listamegértés más módszereket nagy mozgástérrel hagy maga után. Spekuláció történhet, akkor miért nem használjuk az LC-t mindenhol, és nem hurkokat? Az LC az esetek többségében gyorsabb, és csaknem 80% -ban helyettesíti a hurkokat. De nem cserélhetjük ki a hurkokat, van néhány eset, ahol jó néhány feltétel van, és az osztályok egymásba vannak ágyazva. Ezekben az esetekben az LC használata meglehetősen nehézkes lehet, és nem is megvalósítható. Ilyen helyzetekben jobb, ha hurkok vesznek részt. Bár a Lista érthetőséget a hurkok helyett használhatja, a másik helyett a hurkok helyett. Ez csökkenti a végrehajtási időt, és megőrzi a kód felhasználóbarát jellegét.

  • Több feltételt beágyazhatunk a lista áttekintésében.
  • Az LC többszörös változó manipulációt is végrehajthat.
  • Nincs szükség külön parancs megadására a kimenet eléréséhez.
  • A listamegértések csökkentik a kód bonyolultságát.
  • A listamegértés hatékony.

Következtetés

A listamegértések a listák iteratív folyamatból történő létrehozására szolgálnak. A listamegértés könnyen érthető / megvalósítható, és elegánsvá teszi a kódot. A listamegértés kompakt és felhasználóbarát.

Megvitattuk a listamegértés szintaxisát, néhány jó áttekinthető példával együtt. Végül egy programot írtunk, hogy megkapjuk az egyes módszerek időzítését. Megállapítottuk, hogy az LC 2, 85-szor gyorsabb, mint a hurok, és 1, 87-szer gyorsabb, mint a térkép () módszer.

Ajánlott cikkek

Ez egy útmutató a Python listájának megértéséhez. Itt tárgyaljuk a python-lista megértésének előnyeit, valamint a szintaxist és a példákat különböző körülmények között. A következő cikkeket is megnézheti további információkért -

  1. Kivitelező Java-ban
  2. Rendezés Java-ban
  3. Kivitelező Java-ban
  4. JCheckBox Java-ban
  5. Útmutató a C # szerinti rendezéshez, példákkal
  6. Rendezési funkció Python-ban példákkal
  7. Hurkok a VBScript-ben példákkal
  8. Példák a jelölőnégyzet bevezetésére a Bootstrap alkalmazásban

Kategória: