Omforming av lister til ordbøker i Python
Å transformere en liste til en ordbok i Python er en ganske enkel prosess.
La oss undersøke ulike metoder for å gjennomføre denne konverteringen.
Introduksjon
Før vi dykker ned i veiledningen, la oss se på noen eksempler på hvordan man omdanner en liste til en ordbok. Vi vil håndtere både lister med tupler (hver tuppel inneholder to elementer) og lister med enkeltstående elementer. Vi skal behandle begge typer inndata og konvertere dem til ordbøker.
Illustrasjoner:
I det første eksemplet har vi en liste over tupler som vi forvandler til en ordbok. Det første elementet i hver tuppel blir brukt som nøkkel, og det andre elementet blir brukt som verdi i ordboken.
Inndata: list_one = [('a', 'A'), ('b', 'B'), ('c', 'C')]
Utdata: {'a': 'A', 'b': 'B', 'c': 'C'}
I det andre eksemplet tar vi utgangspunkt i en liste med enkeltstående elementer og konverterer den til en ordbok der annethvert element fungerer som henholdsvis nøkkel og verdi. Hvis det ikke finnes noe element for en verdi (om listen har et odde antall elementer), vil nøkkelen tilordnes verdien `None`.
Inndata: list_one = ['a', 'A', 'b', 'B', 'c', 'C', 'd']
Utdata: {'a': 'A', 'b': 'B', 'c': 'C', 'd': None}
Nå har vi sett hensikten med denne veiledningen. Vi skal se nærmere på begge eksemplene med forskjellige tilnærminger. La oss begynne med det første.
Tuplister til ordbok
Vi skal nå gå gjennom hvordan man konverterer en liste bestående av tupler til en ordbok. Følg disse punktene for å skrive koden:
- Start med å initialisere en liste av tupler med eksempeldata som vist ovenfor. Forsikre deg om at hver tuppel i listen består av nøyaktig to elementer.
- Send listen med tupler til `dict`-metoden og lagre resultatet i en ny variabel.
- Dermed har vi transformert listen over tupler til en ordbok med kun én linje kode.
# Liste med tupler list_av_tupler = [('a', 'A'), ('b', 'B'), ('c', 'C')] # Konverterer til ordbok list_av_tupler_ordbok = dict(list_av_tupler) # Skriver ut resultatordboken print(list_av_tupler_ordbok)
Du kan teste koden ovenfor ved å kjøre den. Resultatet vil være det samme som vist i eksemplene.
Enkle lister til ordbok
Vi har sett hvordan en liste av tupler enkelt kan konverteres til en ordbok i Python. I denne delen skal vi se hvordan vi konverterer en vanlig liste til en ordbok.
Se det andre eksemplet fra introduksjonen for å få bedre innsikt.
Følg punktene nedenfor for å skrive koden for dette eksemplet.
Vi har satt standardverdien til `None` for elementer som ikke har en verdi (dette gjelder dersom listen inneholder et odde antall elementer). For å få til dette, må vi benytte `zip_longest`-metoden fra `itertools`-modulen.
- Importer `itertools`-modulen, og lag en liste med et odde antall elementer, som vist i eksemplene.
- Konverter listen til et itererbart objekt for å unngå repetisjon av nøkkel- og verdipar i `zip_longest`-metoden.
- Send det itererbare objektet til `zip_longest`-metoden og angi `fillvalue` som `None`. Dette returnerer et zip-objekt.
- Vi må sende inn det itererbare objektet to ganger da metoden henter nøkler og verdier fra to itererbare objekter. I vårt tilfelle finnes både nøkler og verdier i samme itererbare objekt, derfor sender vi det to ganger før `fillvalue`.
- Konverter objektet til en Python-ordbok ved hjelp av `dict`-metoden.
- Skriv ut resultatet.
# Importerer modulen import itertools # Enkel liste med et odde antall elementer enkel_liste = ['a', 'A', 'b', 'B', 'c', 'C', 'd'] # Konverterer til et itererbart objekt for å unngå repetisjon enkel_liste_iter = iter(enkel_liste) # Konverterer enkel_liste til ordbok enkel_liste_ordbok_objekt = itertools.zip_longest(enkel_liste_iter, enkel_liste_iter, fillvalue=None) # Konverterer zip_longest-objektet til en ordbok ved hjelp av `dict` enkel_liste_ordbok = dict(enkel_liste_ordbok_objekt) # Skriver ut resultatet print(enkel_liste_ordbok)
Du kan endre verdien for `fillvalue` etter eget ønske. Eksperimenter med forskjellige verdier. Kjør koden for å sjekke om du får den samme utdataen som nevnt i eksemplet.
Avslutning
Vi håper du har hatt glede av å lære hvordan man konverterer lister til ordbøker. Vi sees i neste veiledning.
Neste gang skal vi lære å flate ut lister i Python.
Lykke til med kodingen! 🙂
Likte du artikkelen? Del den gjerne med andre!