Handledning för förståelse av Python-ordbok

Python-programmeringsspråket erbjuder en unik uppsättning verktyg som gör kodning inte bara roligt utan också påskyndar dina framsteg som programmerare. På grund av sin enkla användning har Python blivit det bästa språket för en mängd olika branscher, från webbutveckling och datavetenskap till finans och mer.

Handledning för förståelse av Python-ordbok

Python- ordboksförståelse är ett viktigt verktyg som låter dig generera ordböcker dynamiskt genom att iterera över befintliga itererbara datastrukturer eller ordböcker för att skapa nya. Du kan tänka på ordboksförståelse som liknande listförståelse men med ett lite annorlunda användningsfall.

När du blir bekant med förståelser kommer du att upptäcka att de kan förbättra koden avsevärt genom att främja tydlighet och eliminera behovet av långa, repetitiva loopar.

Om du är ny på , kanske du inte har stött på förståelsen eller använt den i din kod. Innan vi dyker in i syntaxen, låt oss ta upp den primära frågan: Vad är Python-ordboksförståelse?

Innehållsförteckning

Vad är Python Dictionary Comprehension?

Python Dictionary Comprehension är ett kortfattat sätt att skapa ordböcker med enkla uttryck. Det låter dig skapa nya ordböcker utan att behöva använda for-loops.e

Låt oss ta en titt på ett exempel på förståelse. Anta att du har två listor, en innehåller nycklar och den andra innehåller värden:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

Med hjälp av ordboksförståelse kan du skapa en ny ordbok genom att iterera över de två listorna och kombinera motsvarande nyckel-värdepar:

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

Utgången blir:

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

Handledning för förståelse av Python-ordbok

Ovanstående exempel bör ge en uppfattning om vilka förståelser som finns i . För att ytterligare hjälpa dig att befästa konceptet, låt oss förstå syntaxen för ordboksförståelser i Python.

Förstå syntaxen för ordboksförståelse

Syntaxen för ordboksförståelse är enkel men kraftfull. De erbjuder en kortfattad. De följer också en liknande syntax för att förstå listor men använder klammerparenteser {} och ett nyckel-värdepar separerade med ett kolon.

Den grundläggande strukturen är som följer:

{key: value for (key, value) in iterable}

I den här syntaxen representerar nyckeln och värdet de uttryck som används för att generera nycklarna och värdena för den resulterande ordboken. Iterabeln tillhandahåller datakällan som används för att skapa nyckel-värdeparen.

Denna syntax introducerades i Python 3 och backporterades så långt som till Python 2.7, vilket säkerställer bred kompatibilitet över Python-versioner.

Till exempel, för att skapa en ordbok som mappar siffror från 0 till 4 till deras kvadrater med hjälp av ordboksförståelse, kan du använda följande Python-kod:

square_dict = {x: x**2 for x in range(5)}

Detta kommer att resultera i följande ordbok:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Handledning för förståelse av Python-ordbok

Vad händer om du skulle vilja iterera över två variabler samtidigt? Du kan uppnå detta med hjälp av ordboksförståelse med zip()-funktionen för att skapa en ordbok från två iterables, en representerar nycklarna och den andra representerar värdena. Här är ett exempel:

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

Den resulterande ordboken blir:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Handledning för förståelse av Python-ordbok

Ordboksförståelse låter dig också lägga till en valfri if-sats i slutet av förståelsen för att tillämpa ett villkorligt filter på de inkluderade objekten.

Du kan till exempel skapa en ordbok med bara jämna tal och deras kvadrater med hjälp av ordboksförståelse:

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

Detta resulterar i:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Handledning för förståelse av Python-ordbok

Nu när du har lite bekantskap med syntaxen för förståelse, låt oss ta en titt på några exempel på förståelse.

Exempel på ordboksförståelse

Ordboksförståelse hittar en rad användningsfall på grund av dess kraftfulla och eleganta syntax. De kan spara tid och göra din kod mer läsbar.

Mappa siffror till deras rutor

Tänk på ett enkelt exempel där du vill skapa en ordbok som mappar siffror till sina kvadrater med hjälp av Python-ordbokens förståelse:

squares = {x: x**2 for x in range(1, 6)}
print(squares)

Detta kommer att mata ut:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Ovanstående kod gör samma jobb som att köra en slinga sex gånger och kvadrera varje nummer. Koden nedan visar att man kör en slinga för att ta kvadraterna av tal:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

Vid det här laget kanske du undrar varför du ska använda förståelse när du kan använda loopar. Inom programmering är en tumregel att skriva kompakt och effektiv kod.

Du kan också tillämpa villkor för din förståelse. Till exempel kanske du vill skapa en ordbok som bara innehåller jämna tal och deras kvadrater:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

Att köra den här koden kommer att producera en ny ordbok som följande:

{2: 4, 4: 16}

Omvänd nycklar och värden

Du kan också enkelt vända ordbokselement med ordboksförståelse i Python.

Följande kod visar hur man vänder nycklar och värden i en befintlig ordbok med hjälp av ordboksförståelse:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

Ovanstående ordboksförståelse (eller diktförståelse) kommer att skriva ut följande:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Handledning för förståelse av Python-ordbok

För att få en bra förståelse för vad ordböcker är och hur du kan använda dem för olika fall, se videon nedan:

Exemplen som tillhandahålls fungerar som en solid grund för att använda ordboksförståelse i dina Python-projekt.

Ordboksförståelsen kan också optimeras ytterligare, vilket gör att en enda rad kod kan utföra komplexa uppgifter som kan ta mer tid och minne med loopar.

3 stora fördelar med ordboksförståelse

Du har upplevt elegansen med ordboksförståelse genom exemplen. Förutom läsbarhet erbjuder förståelser flera fördelar, inklusive effektivitet, när man arbetar med Pythons effektiva nyckel/värde-hashtabellstruktur, kallad diktförståelse .

1. Skapa tydlig och enkel kod

Förståelser gör att du kan skapa nya ordböcker utan ansträngning och på ett läsbart sätt. De får din kod att se ut och kännas mer Pythonic jämfört med traditionella loopar.

2. Bättre prestanda med stil

Förståelser är inte bara eleganta utan också effektiva. De fungerar ofta snabbare än för loopar eftersom de använder ett enda uttryck. Python optimerar den här typen av kod, vilket eliminerar behovet av att upprepade gånger anropa ordbokskonstruktorn eller använda metoden update().

3. Enkel filtrering och datatransformation

En annan fördel med ordboksförståelse är dess enkelhet i att filtrera och transformera data. Du kan till exempel skapa en ny ordbok från en befintlig genom att till��mpa ett villkor eller ändra nycklarna eller värdena.

Det är avgörande att förstå när man ska använda ordboksförståelse i Python, eftersom de snabbt kan bli komplexa och svårare att läsa och skriva. Låt oss nu utforska några användningsfall för ordboksförståelse i Python.

3 exempel på när du ska använda ordboksförståelse

Förståelser är användbara i följande tre scenarier:

1. När du skapar en ordbok från två listor

{key:value for key, value in zip(list1, list2)}

2. När du filtrerar en ordbok baserat på värde

{k: v for k, v in original_dict.items() if v > threshold}

3. När du transformerar nycklar eller värden

{k.upper(): v * 2 for k, v in original_dict.items()}

Det är viktigt att komma ihåg att även om förståelser kan göra din kod mer elegant och effektiv, kan de också bli svåra att läsa om de är alltför komplexa.

Låt oss titta på några av de vanligaste fallgroparna när du använder ordboksförståelse.

Fallgropar av ordboksförståelse

Ordboksförståelser ger elegans och effektivitet men kommer också med utmaningar. Vi kommer att diskutera vanliga fallgropar relaterade till läsbarhet, komplexitet och prestanda med stora datamängder.

Balanserar komplexitet och läsbarhet

Komplexa ordboksförståelser kan vara svåra att läsa. Prioritera kodläsbarhet, särskilt när du arbetar med andra. I vissa fall kan traditionella loopar vara enklare och mer underhållbara.

Prestanda med stora datamängder

För stora datamängder kanske ordboksförståelsen inte alltid är optimal. Enligt Stack Overflow kan en inbyggd dict()-konstruktor överträffa ordboksförståelser med många nyckel-värdepar på grund av looping i C.

Jämförelse med andra metoder

I det här avsnittet kommer vi att jämföra ordboksförståelser med två alternativa metoder för att skapa ordböcker i Python: för loopar och lambda-funktioner.

För Loop

Att använda en for-slinga för att skapa en ordlista innebär att en tom ordlista initieras och sedan iterera genom det önskade giltiga nyckelvärdesparet, lägga till varje par till ordboken. Detta är en mer utförlig metod jämfört med ordboksförståelse.

Följande är ett exempel på hur du skapar en ordbok med för loopar:

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

Omvänt låter en ordboksförståelse dig uppnå samma resultat på en enda rad:

dictionary = {key: value for key, value in zip(keys, values)}

Handledning för förståelse av Python-ordbok

Som du kan se ger förståelser ett kortfattat och mer läsbart sätt att skapa ordböcker i Python.

Lambda funktioner

Vi kan också använda Lambda-funktioner för att skapa ordböcker. Lambdafunktioner är ett sätt att skapa små, anonyma funktioner i Python. De kan användas tillsammans med map()-funktionen för att skapa en ordbok.

Låt oss titta på ett exempel på Lambda-funktioner för att skapa ordböcker:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

Som jämförelse, så här kan samma ordbok skapas med hjälp av förståelse:

dictionary = {key: value for key, value in zip(keys, values)}

Handledning för förståelse av Python-ordbok

Återigen, ordboksförståelse ger ett kortfattat och mer läsbart alternativ till att skapa ordböcker med lambda-funktioner och map()-funktionen.

Bästa metoder för ordboksförståelse

När du använder förståelse i Python är det viktigt att följa bästa praxis för att förbättra läsbarheten, underhållbarheten och effektiviteten. Här är några bästa metoder att överväga:

1. Håll ordboksförståelsen enkel

Ordboksförståelsen är kraftfull, men den bör vara tydlig och koncis. Om din förståelse blir för komplex eller sträcker sig över flera linjer, överväg att använda en traditionell för-loop istället. Detta underlättar kodförståelsen, särskilt för andra eller när du återbesöker ditt arbete senare.

2. Utnyttja inbyggda funktioner

Python erbjuder inbyggda funktioner som zip() och enumerate() som hjälper till att skapa förståelse. Använd dessa funktioner för att effektivisera din kod och göra den mer läsbar.

Om du till exempel använder zip() för att kombinera två listor och skapa en ordbok resulterar i kortfattad och ren kod så här:

{key: value for key, value in zip(keys, values)}

3. Använd villkorliga uttalanden klokt

Inkludera villkorliga uttalanden i dina uppfattningar när det behövs, men överanvänd dem inte. De kan hjälpa till att filtrera eller ändra den resulterande ordboken, men för många kapslade villkor kan göra koden svår att läsa. Ett enkelt exempel som involverar ett villkorligt uttalande är:

{x: x**2 for x in range(10) if x % 2 == 0}

4. Var uppmärksam på kapslad ordboksförståelse

Kapslad ordboksförståelse kan generera ordböcker med kapslade strukturer. Men precis som villkorliga uttalanden kan ett överskott av kapslad ordbok göra koden svårare att dechiffrera. Undvik att gå längre än två nivåer av kapsling i din kapslade ordboksförståelse.

Ibland kan du behöva använda kapslad ordboksförståelse inuti loopar för att uppnå önskad effektivitet.

Vårt sista ord

Vid det här laget har du bemästrat ordboksförståelse i Python. Denna eleganta, effektiva teknik hjälper till att skapa ordböcker genom att iterera över iterables eller använda villkor. Förståelser effektiviserar din kod, vilket ökar läsbarheten och underhållsbarheten.

Att skapa nya ordböcker är enkelt med förståelse, vilket sparar tid och ansträngning jämfört med traditionella for-loopar. De är användbara i verkliga applikationer som databehandling, kartläggning och transformation.

Om du vill utöka dina Python-kunskaper och bli ett riktigt proffs, för vår Python-kurs och se hur vi skapar världens bästa Python-användare.


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.