5 példa a Dict Comprehension használatára Pythonban

A listaösszeállítás egy praktikus és gyorsabb módja a listák létrehozásának Pythonban egyetlen sornyi kóddal. Segítségével könnyen olvasható for ciklusokat írhatunk egyetlen sorban.

A Pythonban a szótár egy adatszerkezet az adatok tárolására úgy, hogy a tárolt adatok minden egyes eleméhez egy kulcs tartozik. A szótár adatszerkezet lehetővé teszi, hogy az adatokat a kulcs segítségével nagyon hatékonyan lekérdezzük.

A megértés gondolata nem csak a Pythonban található listákra jellemző. A szótárak, az adattudományban gyakran használt adatszerkezetek egyike szintén képes a megértésre. A dict comprehension vagy dictionary comprehension segítségével könnyen létrehozhatunk szótárakat.

Memlékezzünk arra, hogy pythonban a listát szögletes zárójelekkel, a szótárat pedig szögletes zárójelekkel {} definiáljuk. A lista-megértésnél használt ötletet a dict-megértés definiálásánál is átvesszük. A dict megértést hasonló szintaxissal definiáljuk, de kulcs:érték párossal a kifejezésben.

  • {key:value for i in list}

Lássunk 5 egyszerű példát a dict megértés használatára, amellyel könnyen hozhatunk létre új szótárakat.

Hatodik példaként hozzáadtuk a dict megértést a kulcsok törlésére egy szótárban.

Dict Comprehension Example 1

Lássunk egy gyors példát a dict comprehension létrehozására egy számlistából.

Használjunk egy számlistát, és hozzunk létre egy szótárat a szám string értékével, mint kulcs és a számmal, mint értékekkel.

# dict comprehension to create dict with numbers as values>{str(i):i for i in }{'1': 1, '3': 3, '2': 2, '5': 5, '4': 4}

Dict comprehension példa 2

Tegyük fel, hogy van egy gyümölcsökből álló listánk, és a dict comprehension segítségével létrehozhatunk egy szótárat a gyümölcsökkel, a lista elemeivel mint kulcsokkal és az egyes stringek hosszával mint értékekkel.

# create list of fruits>fruits = # dict comprehension to create dict with fruit name as keys>{f:len(f) for f in fruits}{'cherry': 6, 'mango': 5, 'apple': 5, 'banana': 6}

Dict megértési példa 3

Hozzunk létre egy szótárat dict megértéssel úgy, hogy a lista elemei legyenek a kulcsok, és az első nagybetűs elemek az értékek.

>{f:f.capitalize() for f in fruits}{'cherry': 'Cherry', 'mango': 'Mango', 'apple': 'Apple', 'banana': 'Banana'}

Dict megértési példa 4

Használjuk az enumerate függvényt a szótár megértésben. Ha még nem használtad az enumerate függvényt: az enumerate bármilyen iterálható dolgot képes bemenetként fogadni, és visszaadja az elemet és annak indexét.

Itt az enumerate függvényt használjuk a listán, hogy létrehozzuk az indexet és a listaelem-tuplikat, és felhasználjuk őket egy szótár létrehozásához a dict megértéssel. Létrehozunk egy szótárat, amelynek kulcsai a lista elemei, értékei pedig az elemek indexe. Az ilyen elemindexszel rendelkező szótárak gyakran hasznosak különböző forgatókönyvekben.

# dict comprehension example using enumerate function>{f:i for i,f in enumerate(fruits)}{'cherry': 3, 'mango': 1, 'apple': 0, 'banana': 2}

Dict megértés 5. példa

A dict megértés másik felhasználási módja a kulcs:érték megfordítása egy meglévő szótárban. Előfordulhat, hogy egy meglévő szótárból új szótárat szeretnénk létrehozni úgy, hogy az első szótárban lévő kulcs:érték pár szerepe az új szótárban megforduljon. Használhatjuk a Dict Comprehensiont, és megfordíthatjuk az elemet az index szótárból az elem szótárba mutató indexre.

# dict comprehension example to reverse key:value pair in a dictionary>f_dict = {f:i for i,f in enumerate(fruits)}>f_dict{'apple': 0, 'banana': 2, 'cherry': 3, 'mango': 1}# dict comprehension to reverse key:value pair in a dictionary>{v:k for k,v in f_dict.items()}{0: 'apple', 1: 'mango', 2: 'banana', 3: 'cherry'}

A dictionaries’ items függvényt használtuk a kulcs-érték párok megszerzésére egy meglévő szótárban, és létrehoztunk egy új szótárt, ahol az eredeti szótárban lévő kulcsok az új szótár értékei, és fordítva.

Dict Comprehension Example 6: Hogyan törölhetünk kiválasztott kulcsokat a szótárból a Dict Comprehension segítségével?

Tegyük fel, hogy van egy szótárunk, és egy új szótárat szeretnénk létrehozni bizonyos kulcs-érték párok eltávolításával. A Dict Comprehension segítségével eltávolíthatjuk a kiválasztott kulcs-érték párokat egy szótárból, és létrehozhatunk egy új szótárat.

Használjuk a fent létrehozott “gyümölcs” szótárat.

fruits = f_d1 ={f:f.capitalize() for f in fruits}f_d1

A diction comprehension segítségével eltávolíthatunk két kulcsot, az almát és a banánt, valamint azok értékeit a gyümölcs szótárból.

# keys to be removed>remove_this = {'apple','cherry'}# dict comprehension example to delete key:value pairs in a dictionary>{key:f_d1 for key in f_d1.keys() - remove_this}{'banana': 'Banana', 'mango': 'Mango'}

Eltávolítottuk a kulcsokat, az almát és a cseresznyét, egyszerűen a dict keys objektum használatával, set műveletekkel, és most az új szótár csak banánt és mangót tartalmaz.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.