Hur man kommenterar i Python – En snabbguide för nybörjare
Hur man kommenterar i Python – En snabbguide för nybörjare
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.
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}
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}
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}
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}
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'}
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)}
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)}
Å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.
Hur man kommenterar i Python – En snabbguide för nybörjare
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.
Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.
Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!
Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.