Python Convert List to Dictionary: A Complete Guide

okt 17, 2021
admin

Egy Python listát szótárrá konvertálhatunk a dictionary comprehension, a dict.fromkeys() vagy a zip() metódus segítségével. Mindhárom módszer új szótárat hoz létre. Nem módosítják a meglévő listát.

A python listák és a szótárak két, adatok tárolására használt struktúra. De mi van akkor, ha egy listát szeretnénk szótárrá alakítani? Ezt akkor teheti meg, ha minden tárolt értékhez egyedi címkét akar rendelni. Ez csak egy szótárban lehetséges.

A Pythonban van néhány technika és beépített függvény, amelyekkel egy listát szótárrá alakíthatunk. Ez a programozási útmutató példákon keresztül tárgyalja, hogyan lehet egy listát szótárrá alakítani Pythonban.

Python listák és szótárak

A listák és szótárak a Python gyűjtemények példái. Lehetővé teszik több hasonló érték együttes tárolását egy adatstruktúrában.

form.submission
Find Your Bootcamp Match
  • Career Karma match you with top tech bootcamps
  • Get exclusive scholarships and prep courses

A lista adatszerkezet lehetővé teszi az adatok meghatározott sorrendben történő tárolását. Íme egy példa egy Python listára:

takeout_prices = 

A takeout_prices nevű listánk négy értéket tartalmaz.

A szótárak ezzel szemben rendezetlenek, és nem tárolhatnak több duplikált értéket.

Íme egy példa egy Python szótárra:

takeout_prices = {'single_chips': 2.50,'large_chips': 2.75,'single_fish': 4.50,'large_fish': 5.00}

A szótárak akkor hasznosak, ha minden értékhez címkéket szeretnénk társítani. A listák jobbak, ha hasonló adatokat tárolunk, például egy ár- vagy névlistát, ahol nem tudunk minden egyes értéket felcímkézni.

Python lista átalakítása szótárrá

Egy Python-listát a dict.fromkeys() módszerrel, a szótár megértésével vagy a zip() módszerrel alakíthatunk át szótárrá. A zip() metódus akkor hasznos, ha két listát szeretnénk egy szótárba összevonni.

Foglaljuk össze gyorsan ezeket a módszereket:

  • dict.fromkeys(): Szótár létrehozására szolgál egy listából. Opcionálisan beállíthatunk egy alapértelmezett értéket minden kulcshoz. A szótár egyes elemeihez nem lehet egyedi értékeket beállítani.
  • Szótár megértése: Új szótárat hoz létre egy meglévő listából. A szótár egyes kulcsaihoz különböző értékeket adhat meg. A szótári megértések szerkezetükben hasonlítanak a Python listás megértésekhez.
  • zip(): Két vagy több listát alakít át egy tuplikból álló listává. A dict() metódussal a tupelek listáját szótárrá alakíthatjuk.

A fenti három módszer mindegyikével bemutatjuk, hogyan alakíthatunk át egy listát szótárrá.

Python lista átalakítása szótárrá: dict.fromkeys()

Tegyük fel, hogy van egy gyümölcslistánk, amelyet szótárrá szeretnénk alakítani. Az egyes gyümölcsökhöz rendelt érték legyen In stock:

fruits = 

Ezt a szótárt a dict.fromkeys() metódussal hozhatjuk létre. Ez a metódus elfogadja azoknak a kulcsoknak a listáját, amelyeket szótárrá szeretnénk alakítani. Opcionálisan megadhatunk egy értéket, amelyet minden kulcshoz hozzárendelünk.

Minden kulcshoz csak egy értéket rendelhetünk. Nem mondhatjuk, hogy egy kulcshoz egy értéket, egy másik kulcshoz pedig egy másik értéket rendeljünk.

A gyümölcsök listáját alakítsuk át szótárrá:

fruits = fruit_dictionary = dict.fromkeys(fruits, "In stock")print(fruit_dictionary)

A kódunk egy szótárobjektumban adja vissza a lista objektumait:

{'Apple': 'In stock', 'Pear': 'In stock', 'Peach': 'In stock', 'Banana': 'In stock'}

Először deklarálunk egy gyümölcsök nevű Python-változót, amely a szótárunkban használni kívánt kulcsok nevét tárolja.

A dict.fromkeys() segítségével létrehozunk egy szótárat, amely a fruits tömbben tárolt kulcsneveket használja. Ez a módszer hozzárendeli az egyes kulcsok értékét az In stock értékhez. Végül az új szótárat kiírjuk a konzolra.

Ha a kódunkban nem adtuk volna meg az In stock értéket, akkor a szótárunkban lévő kulcsok alapértelmezett értéke None lenne.

Lista átalakítása szótárrá Python: Dictionary Comprehension

A Python-lista szótárrá alakítására is használhatunk egy szótármegértésnek nevezett technikát, amely ugyanazokat az értékeket használja.

A szótármegértés abban hasonlít a lista-megértéshez, hogy mindkét módszer új értéket hoz létre a saját adattípusából. A szótár-megértések hegyes zárójeleket ({}), míg a lista-megértések szögletes zárójeleket () használnak.

Változtassuk át a gyümölcsök listáját szótárrá szótármegértés segítségével:

fruits = fruit_dictionary = { fruit : "In stock" for fruit in fruits }print(fruit_dictionary)

A kódunk visszatér:

{'Apple': 'In stock', 'Pear': 'In stock', 'Peach': 'In stock', 'Banana': 'In stock'}

Először deklaráltunk egy gyümölcsök nevű listát, amely a szótárba áthelyezni kívánt neveket tárolta.

Ezután a szótármegértéssel végigfuttattuk a gyümölcsök listájának minden egyes elemét. A listában szereplő minden egyes gyümölcshöz hozzáadtunk egy elemet az új szótárunkhoz. Az érték, amit minden egyes gyümölcshöz hozzárendeltünk, az In stock volt. Végül kiírtuk az új szótárunkat a konzolra.

Python Convert List to Dictionary: zip()

Az utolsó példánkban egyetlen listát alakítottunk át szótárrá, és a szótár minden egyes eleméhez alapértelmezett értéket rendeltünk. Lehetséges azonban két listát is szótárrá alakítani.

Ezért használhatjuk a Python zip() függvényét. Ez a függvény lehetővé teszi számunkra két lista összevonását. Az egyik listát használhatjuk a szótár kulcsaiként, a másikat pedig az értékeiként.

Tegyük fel, hogy van két listánk: az egyik egy gyümölcsök listáját tartalmazza, a másik pedig egy-egy gyümölcs árát. Egyetlen szótárat szeretnénk létrehozni, amely a gyümölcsök neve mellett az árukat is tárolja. A következő kódot használhatjuk a feladat elvégzésére:

fruits = prices = fruit_dictionary = dict(zip(fruits, prices))print(fruit_dictionary)

A kódunk visszatér:

{'Apple': 0.35, 'Pear': 0.4, 'Peach': 0.4, 'Banana': 0.28}

Először is, két listát adtunk meg: egy gyümölcsök listáját és egy árak listáját. Ezután a zip() függvényt használtuk a két listánk összevonására. A zip() függvény az összevont tuplik listáját adja vissza. Mivel szótárat szeretnénk, a dict() segítségével alakítottuk át a tuple-jeinket szótárrá.

A következőkben az új szótárunk tartalmát kiírtuk a konzolra.

Következtetés

A listát azonos értékek felhasználásával szótárrá alakíthatjuk a dict.fromkeys() módszerrel. Két lista egy szótárrá alakításához használhatjuk a Python zip() függvényét. A szótármegértés segítségével új szótárat hozhatunk létre egy lista értékei alapján.

Ezzel a bemutatóval példákon keresztül mutattuk be, hogyan lehet háromféle megközelítéssel listát szótárrá alakítani Pythonban. Most már készen állsz arra, hogy profi programozóként kezdd el a Python listák szótárrá alakítását!

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

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