Piton

Felsorolja a megértéseket a Pythonban

Felsorolja a megértéseket a Pythonban
A Pythonban gyakran használnak listamegértéseket olyan egysoros utasítások megírásához, amelyek új listát vagy szótárt hoznak létre egy iterálható objektum átkötésével. Ez a cikk elmagyarázza, hogyan kell használni a listamegértéseket a Pythonban, kezdve azzal az alapvető magyarázattal, hogy a ciklusok hogyan működnek a Pythonban.

A hurokhoz a Pythonban

A for ciklus utasítás a Python-ban szekvenciálisan ismétli bármely objektum, lista, karakterlánc stb. Tagjait. A többi programozási nyelvhez képest a szintaxisa sokkal tisztább, és nem igényli az iterációs lépések kézi meghatározását és az iteráció elindítását. Bár van mód arra, hogy a viselkedését a többi programozási nyelvhez hasonlóvá tegye (ez a cikk nem foglalkozik ezzel). A ciklusok felett is gyakorolhat bizonyos ellenőrzést olyan utasítások használatával, mint a folytatás, törés, átadás stb. Az alábbiakban bemutatunk egy egyszerű példát a Python ciklusára:

x-hez a tartományban (10):
nyomtatás (x)

A fenti for ciklus tíz számot fog kinyomtatni 0-tól kezdve 9-ig.

Sorolja fel a megértéseket

A lista megértése nem más, mint egy rövid / tömör módszer, hogy többsorosat írjon a hurkokhoz egy egyvonalas utasításban. Az alábbi listamegértési példa új listát hoz létre [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] néven az „x” összes értékének belefoglalásával.

számok = [x x-hez a tartományban (10)]
nyomtatás (számok)

Vegye figyelembe, hogy a listamegértés mindig új listát hoz létre, és nem módosítja a kifejezésben használt eredeti iterable-eket. Egy tipikus listamegértési kifejezésnek rendelkeznie kell „for” záradékkal, amelyet „if” és „else” feltételes mondatok követhetnek. A felsorolás megértése nélkül a fenti példát a következő módon írjuk:

számok []
x-hez a tartományban (10):
számok.függelék (x)
nyomtatás (számok)

Teljesítmény és olvashatóság

A lista megértése gyorsabb, mint a hurkok esetében. Hacsak nem több százezer elemet ismételget, nem fogja észrevenni a teljesítmény jelentős javulását. Míg a listamegértés tömör módot kínál a ciklusok írására, az összetett kifejezések a kód rossz olvashatóságához és megnövekedett szóhasználathoz vezethetnek. Fontos, hogy a kód olvasható legyen, hacsak a maximális teljesítmény elérése nem feltétlenül szükséges a programhoz.

Példa: A listamegértések szintaxisának használata szótárakkal és halmazokkal

A python szótár kulcs-érték párokban definiált elemek gyűjteménye, míg a halmaz egyedi értékek gyűjteménye, ahol a duplikátumok nem engedélyezettek. A lista megértése használható a Python szótárakkal és halmazokkal is. A szintaxis kissé eltér, ahelyett, hogy a kifejezést szögletes zárójelbe csomagolná, most göndör zárójeleket kell használnia. Új lista helyett új szótárat / beállított objektumot is kap.

data = "city": "new york", "name": "john doe"
formatted_data = k: v.cím () k, v adatokhoz.elemek ()
nyomtatás (formatted_data)

A fenti példa konvertálja a karakterláncokat kis- és nagybetűvé, és létrehoz egy új szótárt „formatted_data” néven, amelynek kimenete a következő lesz: 'city': 'New York', 'name': 'John Doe'. Megváltoztathatja a szótárt / beállíthatja a helyén is, ha megadja a meglévő szótárváltozót a bal oldalon.

data = "city": "new york", "name": "john doe"
adatok = k: v.cím () k, v adatokhoz.elemek ()
nyomtatás (adatok)

A szótár-megértések használata nélkül a kód így néz ki:

data = "city": "new york", "name": "john doe"
formatted_data =
k, v adatokra.elemek ():
formattált_adatok [k] = v.cím()
nyomtatás (formatted_data)

Mivel a halmazokban nincs kulcs-érték pár, a halmaz megértése ugyanúgy definiálható, mint a lista megértése. Az egyetlen különbség a göndör zárójelek használata.

Példa: Többszörös a hurok számára egy listamegértésben

A fent említett lista megértési példa alapvető, és egyetlen „for” állítást használ. Az alábbiakban bemutatunk egy példát, amely többszöröset használ a ciklusokhoz és egy feltételes „ha” utasítást.

melléknevek = ["Disco", "Eoan", "Focal", "Artful"]
állatok = ["Dingo", "Ermine", "Fossa", "Hód"]
kódnevek = [x + "" + y x-re állatoknál az y melléknevekben, ha y.startswith (x [0])]
nyomtatás (kódnevek)

A kód megjeleníti a ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] kimenetet. A hurokhoz tartozó kettő a „melléknevek” és az „állatok” listákon megy keresztül, és tagjaikat szóközzel egyesítik, csak ha mindkét szó első betűje megegyezik. A listamegértések használata nélkül a kód így néz ki:

melléknevek = ["Disco", "Eoan", "Focal", "Artful"]
állatok = ["Dingo", "Ermine", "Fossa", "Hód"]
kódnevek = []
x-re a melléknevekben:
y esetén állatoknál:
ha y.startswith (x [0]):
kódnevek.függelék (x + "" + y)
nyomtatás (kódnevek)

Példa: A megértés felsorolása if-else záradékkal

Az alábbi példa megmutatja az if és else utasítások használatát a listamegértésekben.

szám_lista = [1, 2, 3, 4]
másik_lista = [5, 6, 7, 8]
eredmény = [Igaz, ha (x + y)% 2 == 0 más Hamis az x-nek a number_list-ben az y-hoz egy másik_ listában]
nyomtatás (eredmény)

Két lista végigvezetése közben a fenti listamegoldás ellenőrzi, hogy az elempár összege páros-e vagy sem. A fenti kód futtatása megmutatja az [Igaz, Hamis, Igaz, Hamis, Hamis, Igaz, Hamis, Igaz, Igaz, Hamis, Igaz, Hamis, Hamis, Igaz, Hamis, Igaz] kimenetet. A lista megértése nélkül a kód így néz ki:

szám_lista = [1, 2, 3, 4]
másik_lista = [5, 6, 7, 8]
eredmény = []
x-hez a számlistában:
y-re egy másik_listában:
ha (x + y)% 2 == 0:
eredmény.függelék (igaz)
más:
eredmény.függelék (hamis)
nyomtatás (eredmény)

Következtetés

A felsorolás megértése jó módot kínál a tiszta és tömör ciklusos állítások megírására. Azonban gyorsan összetetté és nehezen érthetővé válhatnak, ha több ciklust és feltételes utasítást használnak. Végül a programozó kényelmi szintjéről van szó, de általában érdemes explicit, olvasható és könnyen hibakereső kódot írni, ahelyett, hogy túlzottan rövideket használnánk.

A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...
5 legjobb arcade játék Linuxhoz
Manapság a számítógépek komoly gépek, amelyeket játékra használnak. Ha nem sikerül megszerezni az új magas pontszámot, akkor tudni fogja, mire gondolo...