Python szótár megértési oktatóanyag

A Python programozási nyelv egyedülálló eszközkészletet kínál, amely nemcsak szórakoztatóvá teszi a kódolást, hanem felgyorsítja a programozói fejlődést is. Könnyű használhatóságának köszönhetően a Python a legkülönbözőbb iparágakban használt nyelvvé vált, a webfejlesztéstől és az adattudománytól a pénzügyekig és azon túl is.

Python szótár megértési oktatóanyag

A Python szótárak megértése egy fontos eszköz, amely lehetővé teszi a szótárak dinamikus létrehozását a meglévő iterálható adatstruktúrák vagy szótárak iterációjával újak létrehozásához. A szótári értelmezést a listás szövegértéshez hasonlónak tekintheti, de kissé eltérő használati esettel.

Ahogy megismeri a megértést, rá fog jönni, hogy jelentősen javíthatják a kódot azáltal, hogy elősegítik az egyértelműséget és kiküszöbölik a hosszú, ismétlődő ciklusok szükségességét.

Ha még nem ismeri a(z) alkalmazást, előfordulhat, hogy nem találkozott a megértés funkcióval, vagy nem használta azt a kódjában. Mielőtt belemerülnénk a szintaxisba, foglalkozzunk az elsődleges kérdéssel: Mi a Python szótár megértése?

Tartalomjegyzék

Mi a Python szótár megértése?

A Python szótár megértése egy tömör módja a szótárak létrehozásának egyszerű kifejezések használatával. Lehetővé teszi új szótárak létrehozását a for-loops.e használata nélkül

Nézzünk egy példát a megértésre. Tegyük fel, hogy két listája van, az egyik kulcsokat, a másik pedig értékeket tartalmaz:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

A szótári megértés használatával új szótárt hozhat létre a két lista iterációjával és a megfelelő kulcs-érték párok kombinálásával:

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

A kimenet a következő lesz:

{'a': 1, 'b': 2, 'c': 3}

Python szótár megértési oktatóanyag

A fenti példának képet kell adnia arról, hogy a megértés miben áll. A fogalom megszilárdítása érdekében ismerjük meg a szótári megértés szintaxisát Pythonban.

A szótári megértés szintaxisának megértése

A szótári megértés szintaxisa egyszerű, de hatékony. Tömören kínálnak . Ezenkívül hasonló szintaxist követnek a lista megértéséhez, de kapcsos zárójeleket {} és kettősponttal elválasztott kulcs-érték párt használnak.

Az alap felépítés a következő:

{key: value for (key, value) in iterable}

Ebben a szintaxisban a kulcs és az érték az eredményül kapott szótár kulcsainak és értékeinek generálásához használt kifejezéseket jelenti. Az iterálható a kulcs-érték párok létrehozásához használt adatok forrását adja.

Ezt a szintaxist a Python 3-ban vezették be, és a Python 2.7-ig visszaportálták, biztosítva a Python-verziók széles körű kompatibilitását.

Például egy olyan szótár létrehozásához, amely a 0-tól 4-ig terjedő számokat a négyzetekre leképezi a szótári megértés segítségével, a következő Python-kódot használhatja:

square_dict = {x: x**2 for x in range(5)}

Ez a következő szótárat eredményezi:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Python szótár megértési oktatóanyag

Mi a teendő, ha egyszerre két változót szeretne ismételni? Ezt a szótár megértésével érheti el a zip() függvénnyel, hogy szótárt hozzon létre két iterálható elemből, amelyek közül az egyik a kulcsokat, a másik pedig az értékeket képviseli. Íme egy példa:

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

Az eredményül kapott szótár a következő lesz:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Python szótár megértési oktatóanyag

A szótári megértés azt is lehetővé teszi, hogy a megértés végére egy opcionális if utasítást adjon hozzá, hogy feltételes szűrőt alkalmazzon a benne szereplő elemekre.

Létrehozhat például egy szótárt, amely csak páros számokat és azok négyzeteit tartalmazza a szótári megértés segítségével:

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

Ennek eredménye:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Python szótár megértési oktatóanyag

Most, hogy már ismeri a megértés szintaxisát, vessünk néhány példát a megértésre.

Példák a szótári megértésre

Erőteljes és elegáns szintaxisának köszönhetően a szótári megértés számos felhasználási lehetőséget talál. Időt takaríthatnak meg, és olvashatóbbá tehetik a kódot.

Számok leképezése a négyzeteikre

Tekintsünk egy egyszerű példát, ahol olyan szótárt szeretne létrehozni, amely a számokat a négyzeteikre képezi le Python szótári értelmezések segítségével:

squares = {x: x**2 for x in range(1, 6)}
print(squares)

Ez a következő kimenetet adja:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

A fenti kód ugyanazt a feladatot végzi el, mintha egy ciklust hatszor lefuttatna, és minden számot négyzetre emelne. Az alábbi kód egy ciklus futtatását mutatja be a számok négyzeteinek felvételéhez:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

Ezen a ponton talán azon töprenghet, hogy miért használja a szövegértést, amikor használhat hurkokat. A programozásban az a ökölszabály, hogy kompakt és hatékony kódot kell írni.

Feltételeket is alkalmazhatsz a szövegértésedhez. Létrehozhat például egy szótárt, amely csak páros számokat és azok négyzeteit tartalmazza:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

Ennek a kódnak a futtatásával egy új szótár jön létre, például a következő:

{2: 4, 4: 16}

Fordított kulcsok és értékek

Könnyedén megfordíthatja a szótárelemeket a szótár megértésével Pythonban.

A következő kód bemutatja, hogyan lehet megfordítani egy meglévő szótár kulcsait és értékeit a szótár megértésével:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

A fenti szótári szövegértés (vagy diktatúra) a következőket nyomtatja ki:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Python szótár megértési oktatóanyag

Ha szeretné jobban megérteni, mik azok a szótárak, és hogyan használhatja őket különböző esetekben, tekintse meg az alábbi videót:

A bemutatott példák szilárd alapot nyújtanak a szótár megértésének alkalmazásához Python-projektjeiben.

Ezenkívül a szótár értelmezése tovább optimalizálható, lehetővé téve egyetlen kódsornak, hogy olyan összetett feladatokat hajtson végre, amelyek több időt és memóriát fogyaszthatnak a hurkok segítségével.

A szótári megértés 3 fő előnyei

A bemutatott példákon keresztül megtapasztalhatta a szótári megértés eleganciáját. Az olvashatóságon kívül a megértés számos előnnyel jár, beleértve a hatékonyságot is, amikor a Python hatékony kulcs/érték hash táblázatszerkezetével, az úgynevezett diktatúrával dolgozik .

1. Világos és egyszerű kód létrehozása

A szövegértés lehetővé teszi új szótárak könnyű és olvasható módon történő létrehozását. A hagyományos ciklusokhoz képest Pythonicabb megjelenést és érzetet biztosítanak a kódnak.

2. Jobb teljesítmény stílussal

A megértés nemcsak elegáns, hanem hatékony is. Gyakran gyorsabban működnek, mint a ciklusoknál, mivel egyetlen kifejezést használnak. A Python optimalizálja ezt a fajta kódot, így nincs szükség a szótár konstruktorának ismételt meghívására vagy az update() metódus használatára.

3. Egyszerű szűrés és adatátalakítás

A szótári megértés másik előnye az adatok szűrésének és átalakításának egyszerűsége. Létrehozhat például egy új szótárt egy meglévő szótárból egy feltétel alkalmazásával vagy a kulcsok vagy értékek módosításával.

Alapvető fontosságú, hogy megértsük, mikor kell szótári szövegértést használni Pythonban, mivel ezek gyorsan bonyolulttá válhatnak, és nehezebben olvashatók és írhatók. Most nézzünk meg néhány használati esetet a szótár megértéséhez Pythonban.

3 Példa arra, hogy mikor kell használni a szótár megértését

A megértés a következő 3 esetben hasznos:

1. Amikor szótárt hoz létre két listából

{key:value for key, value in zip(list1, list2)}

2. A szótár érték alapján történő szűrésekor

{k: v for k, v in original_dict.items() if v > threshold}

3. Kulcsok vagy értékek átalakítása során

{k.upper(): v * 2 for k, v in original_dict.items()}

Fontos észben tartani, hogy bár a megértés elegánsabbá és hatékonyabbá teheti a kódot, az is nehezen olvashatóvá válhat, ha túlságosan összetett.

Nézzünk meg néhány leggyakoribb buktatót a szótári megértés használatakor.

A szótári megértés buktatói

A szótári szövegértés eleganciát és hatékonyságot hoz, de kihívásokkal is jár. Megvitatjuk a nagy adatkészletek olvashatóságával, összetettségével és teljesítményével kapcsolatos gyakori buktatókat.

A komplexitás és az olvashatóság egyensúlya

Az összetett szótári értelmezések nehezen olvashatók. Részesítse előnyben a kód olvashatóságát, különösen, ha másokkal dolgozik. Egyes esetekben a hagyományos for loop egyszerűbb és karbantarthatóbb lehet.

Teljesítmény nagy adatkészletekkel

Nagy adathalmazok esetén előfordulhat, hogy a szótári értelmezés nem mindig optimális. A Stack Overflow szerint a beépített dict() konstruktor számos kulcs-érték párral felülmúlhatja a szótárak értelmezéseit a C-ben való ciklus miatt.

Összehasonlítás más módszerekkel

Ebben a részben összehasonlítjuk a szótárak megértését a Pythonban készült szótárkészítés két alternatív módszerével: a ciklusokhoz és a lambda függvényekhez.

For Loop

A for hurok használata szótár létrehozásához magában foglalja egy üres szótár inicializálását, majd a kívánt érvényes kulcsértékpáron való iterációt, és minden pár hozzáadását a szótárhoz. Ez egy bőbeszédűbb módszer a szótári megértéshez képest.

A következő példa egy szótár létrehozására a for ciklusok használatával:

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

Ezzel szemben a szótár megértése lehetővé teszi ugyanazt az eredményt egyetlen sorban:

dictionary = {key: value for key, value in zip(keys, values)}

Python szótár megértési oktatóanyag

Amint láthatja, a szövegértés tömör és olvashatóbb módot kínál a szótárak létrehozására Pythonban.

Lambda funkciók

Lambda függvényeket is használhatunk szótárak létrehozásához. A lambda-függvények kis, névtelen függvények létrehozásának módjai a Pythonban. A map() függvénnyel együtt használhatók szótár létrehozására.

Nézzünk egy példát a Lambda függvényekre a szótárak létrehozásához:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

Összehasonlításképpen a következőképpen hozható létre ugyanaz a szótár szövegértés használatával:

dictionary = {key: value for key, value in zip(keys, values)}

Python szótár megértési oktatóanyag

A szótárak értelmezése ismét tömör és olvashatóbb alternatívát kínál a lambda-függvények és a map() függvény segítségével történő szótárak létrehozásához.

A szótári megértés legjobb gyakorlatai

Amikor szövegértést használ Pythonban, elengedhetetlen a bevált gyakorlatok követése az olvashatóság, a karbantarthatóság és a hatékonyság javítása érdekében. Íme néhány megfontolandó bevált gyakorlat:

1. Legyen egyszerű a szótári szövegértés

A szótári megértés erős, de világosnak és tömörnek kell lennie. Ha a szövegértésed túl bonyolult lesz, vagy több sort is átível, fontold meg a hagyományos for ciklus használatát. Ez segíti a kód megértését, különösen mások számára, vagy amikor később újra felkeresi a munkáját.

2. Használja ki a beépített funkciókat

A Python olyan beépített függvényeket kínál, mint a zip() és az enumerate(), amelyek segítenek megérteni. Használja ezeket a funkciókat a kód egyszerűsítéséhez és olvashatóbbá tételéhez.

Például a zip() használatával két lista összevonása és egy szótár létrehozása a következő tömör és tiszta kódot eredményezi:

{key: value for key, value in zip(keys, values)}

3. Használja bölcsen a feltételes állításokat

Ha szükséges, illesszen be feltételes állításokat a megértésébe, de ne használja őket túlzásba. Segíthetnek szűrni vagy módosítani az eredményül kapott szótárt, de a túl sok beágyazott feltétel megnehezítheti a kód olvashatóságát. Egy egyszerű példa egy feltételes utasításra:

{x: x**2 for x in range(10) if x % 2 == 0}

4. Ügyeljen a beágyazott szótár megértésére

A beágyazott szótár értelmezése beágyazott szerkezetű szótárakat hozhat létre. A feltételes utasításokhoz hasonlóan azonban a túl sok beágyazott szótár megnehezítheti a kód megfejtését. A beágyazott szótár megértésében ne lépje túl a beágyazás két szintjét.

Előfordulhat, hogy a kívánt hatékonyság eléréséhez beágyazott szótári értelmezést kell használnia a ciklusokon belül.

Az utolsó mondatunk

Mostanra már elsajátította a szótár megértését Pythonban. Ez az elegáns, hatékony technika segít szótárak létrehozásában az iterálható elemeken való ismétléssel vagy feltételek használatával. A megértések leegyszerűsítik a kódot, javítva az olvashatóságot és a karbantarthatóságot.

Új szótárak létrehozása egyszerű és érthető, így időt és erőfeszítést takarít meg a hagyományos for-loopokhoz képest. Hasznosak az olyan valós alkalmazásokban, mint az adatfeldolgozás, a leképezés és az átalakítás.

Ha szeretné továbbfejleszteni Python-tudását, és igazi profi lenni, látogasson el Python-tanfolyamunkra, és nézze meg, hogyan hozzuk létre a világ legjobb Python-felhasználóit.


Hogyan kommentáljunk Pythonban – Rövid útmutató kezdőknek

Hogyan kommentáljunk Pythonban – Rövid útmutató kezdőknek

Hogyan kommentáljunk Pythonban – Rövid útmutató kezdőknek

Mi az a Power Query & M Language: Részletes áttekintés

Mi az a Power Query & M Language: Részletes áttekintés

Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.

A SharePoint automatizálási szolgáltatás | Bevezetés

A SharePoint automatizálási szolgáltatás | Bevezetés

Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.

LuckyTemplates lejtődiagram: Áttekintés

LuckyTemplates lejtődiagram: Áttekintés

Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.

LuckyTemplates színes témák az egységes vizualizációkhoz

LuckyTemplates színes témák az egységes vizualizációkhoz

Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.