logo

Converteer een lijst naar woordenboek Python

Schrijf, gegeven een lijst, een Python-programma om de gegeven lijst naar een woordenboek te converteren, zodat alle oneven elementen de sleutel hebben, en even getalselementen de waarde. Sinds de Python woordenboek is ongeordend, de uitvoer kan in elke volgorde staan.

Voorbeeld



  Input :    ['a', 1, 'b', 2, 'c', 3]   Output:   {'a': 1, 'b': 2, 'c': 3}   Explaination  : In the input we have a list of element which then is conerted into key value pairs of dictonary in the output>

Converteer een lijst naar woordenboekpython

Hieronder staan ​​​​de methoden die we in dit artikel zullen behandelen:

Converteer een lijst naar een woordenboek met behulp van een lus

Deze methode werkt door het initialiseren van een leeg bestand woordenboek en vervolgens de lijst doorlopen in stap 2. Bij elke iteratie wordt het sleutel-waardepaar aan het woordenboek toegevoegd, waarbij het huidige element als sleutel en het volgende element als waarde wordt gebruikt. Ten slotte wordt het woordenboek als resultaat geretourneerd.

Python3








def> convert(lst):> >res_dict>=> {}> >for> i>in> range>(>0>,>len>(lst),>2>):> >res_dict[lst[i]]>=> lst[i>+> 1>]> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))>

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), waarbij n de lengte van de invoerlijst is.
Hulpruimte: O(n), waarbij n de lengte van de invoerlijst is.

Lijst met woordenboekgesprekken met behulp van dictbegrip

Om een ​​lijst naar een woordenboek te converteren, kunnen we gebruiken dicteerbegrip en maak een sleutel:waardepaar van opeenvolgende elementen. Typ ten slotte de lijst naar dictaat type.

Python3




def> Convert(lst):> >res_dct>=> {lst[i]: lst[i>+> 1>]>for> i>in> range>(>0>,>len>(lst),>2>)}> >return> res_dct> > # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), waarbij n de lengte van de invoerlijst is.
Hulpruimte: O(n), waarbij n de lengte van de invoerlijst is.

Een lijst omzetten in een woordenboek in zingen zip() Methode

Maak eerst een iterator en initialiseer deze met de variabele ‘it’. Gebruik dan ritssluiting methode , om sleutels en waarden samen te zippen. Eindelijk typecast het naar dictaat type.

Python3




def> Convert(a):> >it>=> iter>(a)> >res_dct>=> dict>(>zip>(it, it))> >return> res_dct> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), waarbij n de lengte is van de invoerlijst a.
Hulpruimte: O(n), waarbij n de lengte is van de invoerlijst a.

Lijst met woordenboekgesprekken met behulp van de Lambda-functie

Maak eerst een array met sleutels en waarden met behulp van array-slicing. Gebruik dan de kaart methode met lambda om een ​​array van tuple te vormen met de sleutelwaarde paris. Tenslotte typeert u het naar dicteertype.

Python




def> Convert(lst):> >res_dct>=> map>(>lambda> i: (lst[i], lst[i>+>1>]),>range>(>len>(lst)>->1>)[::>2>])> >return> dict>(res_dct)> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), waarbij n het aantal sleutelwaardeparen in het woordenboek is.
Hulpruimte: O(n), om de sleutels en waarden in het woordenboek op te slaan.

Een lijst omzetten in een woordenboek met behulp van Lijstbegrip en Segmentatie

Plak de invoerlijst om een ​​lijst met sleutels te verkrijgen met behulp van lst[::2]. Hiervoor is elk tweede element nodig, beginnend bij het eerste element van de lijst. Snijd de invoerlijst in stukken om een ​​lijst met waarden te krijgen met behulp van lst[1::2]. Hierbij is elk tweede element nodig, beginnend bij het tweede element van de lijst. Maak een woordenboek met behulp van a woordenboekbegrip dat itereert over de indices van de sleutellijst en koppelt elke sleutel aan de overeenkomstige waarde uit de waardenlijst.

Retourneer het resulterende woordenboek.

Python3




def> convert(lst):> >keys>=> lst[::>2>]># slice the list to get keys> >values>=> lst[>1>::>2>]># slice the list to get values> >res_dict>=> {keys[i]: values[i]>for> i>in> range>(>len>(keys))}> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))># {'a': 1, 'b': 2, 'c': 3}>

>

java-arraylijst gesorteerd
>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op).

Converteer een lijst naar een woordenboek met Itertools

Importeer de itertools module .Gebruik de zip_longest() functie om een ​​lijst met tupels te maken uit de originele lijst. Deze functie groepeert de elementen in paren, zelfs als de lengte van de lijst oneven is. Gebruik een woordenboekbegrip om een ​​woordenboek te maken uit de lijst met tupels. Retourneer het woordenboek.

Hieronder vindt u de implementatie van de bovenstaande aanpak:

Python3




import> itertools> def> convert(lst):> >pairs>=> itertools.zip_longest(>*>[>iter>(lst)]>*> 2>, fillvalue>=>None>)> >dct>=> {key: value>for> key, value>in> pairs}> >return> dct> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))>

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: O(n) (om de lijst met tupels op te slaan)