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
, medfillvalue
satt tillNone
. 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
.
- 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
- 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!