Egy lista szótárrá konvertálása Pythonban nem olyan nehéz.
Nézzük meg a lista szótárrá alakításának különböző módjait.
Intro
Mielőtt belevágna az oktatóanyagba, lássunk egy példát a lista szótárrá alakítására. Lesz egy listánk a sorokról (minden sor két elemből áll), vagy csak egy listát az elemekről. Mindkét bevitelt felhasználjuk, és szótárakká alakítjuk.
Példák:
A következő példában sorszámlistát vettünk, és szótárrá alakítottuk. Minden sor első elemét kulcsnak, a második elemet pedig értéknek vettük a szótárhoz.
Bemenet: list_one = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]
Kimenet: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}
A következő példában vettünk egy elemlistát, és átalakítottuk egy szótárba, amely kulcsként és értékként alternatív elemeket tartalmaz. A kulcsnak nullát adunk, ha kulcsként nem maradt neki elem (ha a lista páratlan számú elemet tartalmaz).
Bemenet: list_one = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]
Kimenet: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’, ‘d’: nincs}
Láttuk az oktatóanyag célját. És mindkét példát különböző módon fogjuk megvitatni. Kezdjük az első példával.
Tuples lista – Szótár
Nézzük meg, hogyan lehet a sorok listáját szótárrá alakítani. Megpróbálhatja megírni a kódot a következő lépések segítségével.
- A fenti példák szerint inicializálja a sorok listáját áladatokkal (győződjön meg róla, hogy a listában minden sor pontosan két elemet tartalmaz).
- Adja át a sorok listáját a dict metódusnak, és az eredményt egy új változóban tárolja.
- Ez az, a sorok listáját egyetlen kódsorral szótárrá alakítottuk.
# list of tuples list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')] # converting to dictionary list_of_tuples_dict = dict(list_of_tuples) # printing the result dict print(list_of_tuples_dict)
A fenti programkimenetet a végrehajtással tesztelheti. Az eredményt a példákban látjuk.
Lista – Szótár
Láttuk, hogyan lehet a sorok listáját szótárrá alakítani, és ez egy egyszerű dolog Pythonban. Ebben a részben látni fogjuk, hogyan lehet egy egyszerű listát szótárrá alakítani.
Tekintse meg az oktatóanyag első szakaszának második példáját, hogy jobban érthető legyen.
Kövesse az alábbi lépéseket a második példa kódjának megírásához.
Annak az elemnek az alapértelmezett értékét, amelyiknek nincs értéke (páratlan számú elemet tartalmazó lista), a None-t töltöttük ki. Ehhez egy zip_longest nevű metódust kell használnunk az itertools modulból.
- Importálja a modul itertools-ját, és inicializáljon egy listát a példákban megadott páratlan számú elemből.
- Konvertálja a listát iterálhatóvá, hogy elkerülje a kulcs- és értékpárok ismétlődését a zip_longest metódusban.
- Most adja át az iterablet a zip_longest metódusnak, és a fillvalue-t None-ként adja át. Ez egy zip objektumot fog visszaadni.
- Kétszer kell átadnunk az iterálást, mivel kulcsot és értéket vesz a két iterálhatóból. Esetünkben mind a kulcsok, mind az értékek ugyanabban az iterálhatóságban vannak. Tehát kétszer kell átadnunk a fillvalue előtt.
- Konvertálja az objektumot a Python szótárba a dict módszerrel.
- Nyomtassa ki az eredményt.
# importing the module import itertools # plain list with odd number of elements plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd'] # converting it to iterable to avoid repetition plain_list_iter = iter(plain_list) # converting the plain_list to dict plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None) # convert the zip_longest object to dict using `dict` plain_list_dict = dict(plain_list_dict_object) # print it print(plain_list_dict)
Bármit megadhat a kitöltési értéknek. Próbálj ki különböző dolgokat vele. És futtassa a kódot, hogy megnézze, hogy pontosan a példában említett kimenetet kapjuk-e vagy sem.
Következtetés
Remélem, tetszett a lista szótárrá alakítása. Találkozzunk a következő bemutatóban.
Ezután tanulja meg, hogyan laposíthatja a listát Pythonban.
Boldog kódolást 🙂
Élvezettel olvasta a cikket? Mit szólnál a világgal való megosztáshoz?