Konvertera lista till ordbok i Python

By rik

Att transformera en lista till en ordbok i Python är en ganska enkel process.

Låt oss undersöka olika tillvägagångssätt för att omvandla listor till ordböcker.

Introduktion

Innan vi fördjupar oss i guiden, låt oss granska ett exempel på hur man konverterar en lista till en ordbok. Vi kommer att arbeta med en lista som innehåller tupler (där varje tupel har två element) eller helt enkelt en lista med enskilda element. Vi kommer att ta båda typerna av inmatning och omvandla dem till ordböcker.

Exempel:

I följande exempel har vi tagit en lista bestående av tupler och gjort om den till en ordbok. Vi har använt det första elementet i varje tupel som en nyckel, och det andra elementet som motsvarande värde i ordboken.

Inmatning: list_one = [('a', 'A'), ('b', 'B'), ('c', 'C')]

Utdata: {'a': 'A', 'b': 'B', 'c': 'C'}

I nästa exempel har vi utgått från en lista med element och transformerat den till en ordbok där elementen används växelvis som nycklar och värden. Om listan innehåller ett udda antal element, kommer vi att ange ’Inga’ som värde för den sista nyckeln (om det inte finns ett par att matcha med).

Inmatning: list_one = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

Utdata: {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'Inga'}

Nu har vi etablerat syftet med denna guide. Vi kommer att undersöka båda exemplen på olika sätt. Låt oss börja med det första scenariot.

Lista av Tupler till Ordbok

Här visar vi hur man konverterar en lista med tupler till en ordbok. Du kan prova att skriva koden genom att följa dessa steg:

  • Skapa en lista med tupler och fyll den med exempeldata enligt exemplen ovan (se till att varje tupel i listan har exakt två element).
  • Använd dict()-metoden för att konvertera listan av tupler till en ordbok. Spara resultatet i en ny variabel.
  • Det är allt! Med en enda kodrad har vi nu omvandlat en lista med tupler till en ordbok.
# Lista med tupler
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# Konvertera till ordbok
list_of_tuples_dict = dict(list_of_tuples)

# Skriv ut resultatet
print(list_of_tuples_dict)

Du kan köra koden ovan för att verifiera resultatet. Du kommer att se att resultatet stämmer överens med det vi såg i exemplen.

Lista till Ordbok

Vi har nu sett hur enkelt det är att konvertera en lista med tupler till en ordbok i Python. I det här avsnittet ska vi utforska hur man omvandlar en vanlig lista till en ordbok.

För att få en tydligare bild, se det andra exemplet från den första delen av guiden.

Följ stegen nedan för att skriva koden för detta scenario.

Vi använder standardvärdet None för de element som saknar ett matchande värde (när listan har ett udda antal element). För att åstadkomma detta använder vi funktionen zip_longest från modulen itertools.

  • Importera modulen itertools och skapa en lista med ett udda antal element, som i exemplen.
  • Gör listan till en iterabel för att undvika att nyckel- och värdepar upprepas i zip_longest.
  • Använd nu den iterabla med zip_longest, med fillvalue satt till None. Det returnerar ett zip-objekt.
    • Vi måste ange den iterabla två gånger, eftersom metoden tar nyckel och värde från de två iterables. I vårt fall kommer både nycklar och värden från samma iterable, så vi anger den två gånger innan vi anger fillvalue.
  • Konvertera det returnerade objektet till en ordbok med dict().
  • Skriv ut ordboken.
# Importera modulen
import itertools

# Vanlig lista med ett udda antal element
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# Konvertera till iterabel för att undvika upprepning
plain_list_iter = iter(plain_list)

# Konvertera listan till ordbok
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)

# Konvertera zip_longest objektet till ordbok med `dict`
plain_list_dict = dict(plain_list_dict_object)

# Skriv ut resultatet
print(plain_list_dict)

Du kan ange vilket värde du vill som fillvalue. Experimentera med olika värden. Kör koden för att verifiera att du får den förväntade utdatan.

Sammanfattning

Vi hoppas att du hade nytta av den här guiden för att omvandla listor till ordböcker. Vi ses i nästa tutorial.

Lär dig sedan hur du kan platta ut en lista i Python.

Lycka till med kodningen! 🙂

Uppskattade du den här artikeln? Dela den gärna vidare!