Om någon frågar dig, “Vilket är det snabbast växande programmeringsspråket i världen just nu?” Svaret kommer att vara enkelt. Din python. Den globala populariteten beror på dess enkla syntax och rika bibliotek. Idag kan du göra nästan vad som helst med Python: datavetenskap, maskininlärning, signalbehandling, datavisualisering, you name it. Många hävdar dock att Python är lite långsam med att lösa allvarliga problem. Men exekveringstiden för ett program beror på koden som skrivs. Med några tips och tricks kan du snabba upp din Python-kod och förbättra programmets prestanda.
Tips och tricks för att snabba upp Python-koden
Om du letar efter sätt att snabba upp din pythonkod, är artikeln för dig. Illustrerar tekniker och strategier för att minska exekveringstiden för ett program. Tipsen kommer inte bara att påskynda koden utan också förbättra pythonfärdigheter.
01. Använd inbyggda bibliotek och funktioner
Python har massor av biblioteksfunktioner och moduler. De är skrivna av expertutvecklare och har testats flera gånger. Därför är dessa funktioner mycket effektiva och hjälper till att påskynda koden; Det finns ingen anledning att skriva koden om funktionen redan finns tillgänglig i biblioteket. Låt oss ge ett enkelt exempel i detta avseende.
#code1
newlist = []
for word in oldlist:
newlist.append(word.upper())
#code2 newlist = map(str.upper, oldlist)
Här är den andra koden snabbare än den första eftersom biblioteksfunktionen map() har använts. Dessa funktioner är användbara för nybörjare. Vem vill inte skriva snabbare, renare, mindre kod? Använd därför biblioteksfunktioner och moduler så mycket som möjligt.
02. Rätt datastruktur på rätt plats
Att använda rätt datastruktur kommer att minska exekveringstiden. Innan du börjar bör du tänka på vilken datastruktur som kommer att användas i koden. En perfekt datastruktur kommer att påskynda din python-kod medan andra kommer att förstöra den. Du bör ha en uppfattning om tidskomplexiteten hos olika datastrukturer.
Python har inbyggda datastrukturer som listor, tupler, uppsättningar och ordböcker. Folk är vana vid att använda listor. Men det finns vissa fall där tupel eller ordbok fungerar mycket bättre än listor. För att lära dig mer datastrukturer och algoritmer bör du hänvisa till Python-inlärningsböcker.
03. Troch för att minimera användningen av for Loop
Det är ganska svårt att undvika att använda for loop. Men varje gång du har en chans att förhindra det, säger experter att du gör det. För loop är dynamisk i python. Dess utförandetid är mer än en stundsslinga. Den kapslade för-slingan tar mycket mer tid. Två kapslade för loopar tar kvadraten av tiden i en singel för loop.
#code1
for i in big_it:
m = re.search(r'\d{2}-\d{2}-\d{4}', i)
if m:
...
#code2
date_regex = re.compile(r'\d{2}-\d{2}-\d{4}')
for i in big_it:
m = date_regex.search(i)
if m:
...
Det är bättre att använda en lämplig ersättning i detta fall. Dessutom, om för loopar är oundvikliga, flytta beräkningen utanför loopen. Det kommer att spara mycket tid. Vi kan se det i föregående exempel. Här är den andra koden snabbare än den första, eftersom beräkningen har gjorts utanför loopen.
04. Undvik globala variabler
Globala variabler De används i python i många fall. Det globala nyckelordet används för att deklarera det. Men exekveringstiden för dessa variabler är längre än den för den lokala variabeln. Att använda färre av dem sparar onödig minnesanvändning. Dessutom plockar Python upp en lokal variabel snabbare än en global. När du bläddrar i externa variabler är Python riktigt långsam.
Flera andra programmeringsspråk motsätter sig oplanerad användning av globala variabler. Räknaren beror på biverkningar som leder till ökad utförandetid. Försök därför att använda en lokal variabel istället för en global när det är möjligt. Dessutom kan du göra en lokal kopia innan du använder den i en loop, vilket sparar tid.
05. Öka användningen av listförståelser
Listförståelse erbjuder en kortare syntax. Det är en handfull när du gör en ny lista baserad på en befintlig lista. Loop är ett måste i alla koder. Ibland blir syntaxen inuti loopen stor. I så fall kan listförståelse användas. Vi kan ta exemplet för att förstå det mer exakt.
#code1
square_numbers = []
for n in range(0,20):
if n % 2 == 1:
square_numbers.append(n**2)
#code2 square_numbers = [n**2 for n in range(1,20) if n%2 == 1]
Här tar den andra koden kortare tid än den första. Tillvägagångssättet för listförståelse är kortare och mer exakt. Det kanske inte gör så stor skillnad i små koder. Men i omfattande utveckling kan det spara lite tid. Använd därför listförståelse närhelst du har möjlighet att snabba upp din Python-kod.
06. Ersätt range() med xrange()
Frågan om range() och xrange() uppstår om du använder python 2. Dessa funktioner används för att iterera allt i for-slingan. När det gäller range() sparas alla siffror i intervallet i minnet. Men xrange() sparar bara det antal nummer som ska visas.
Returtypen för range() är en lista och den för xrange() är ett objekt. Så småningom kräver xrange() mindre minne och som ett resultat mindre tid. Använd därför xrange() istället för range() när det är möjligt. Detta gäller naturligtvis bara Python 2-användare.
07. Använd generatorer
I Python är en generator en funktion som returnerar en iterator när nyckelordet yield anropas. Generatorer är utmärkta minnesoptimerare. De returnerar en vara i taget istället för att returnera allt på en gång. Om din lista innehåller en ansenlig mängd data och du behöver använda en bit data åt gången, använd generatorer.
Generatorer beräknar data i delar. Därför kan funktionen returnera resultatet när den efterfrågas och bevara dess tillstånd. Generatorer bevarar tillståndet för funktionen genom att stoppa koden efter att den som ringer har genererat värdet, och fortsätta exekvera där den slutade på begäran.
Eftersom generatorerna kommer åt och beräknar värdet på begäran, finns det inget behov av att lagra en betydande del av datan helt och hållet i minnet. Det resulterar i avsevärda minnesbesparingar och snabbar i slutändan upp koden.
08. Sammanfoga strängar med Join
Sammankoppling är ganska vanligt när man arbetar med strängar. I python sammanfogar vi vanligtvis med ‘+’. Men vid varje steg skapar “+”-operationen en ny sträng och kopierar det gamla materialet. Denna process är ineffektiv och tidskrävande. Vi måste använda join() för att sammanfoga strängar här om vi vill påskynda vår Python-kod.
#code1 x = "I" + "am" + "a" + "python" + "geek" print(x)
#code2 x = " ".join(["I", "am", "a", "python", "geek"]) print(x)
Om vi tittar på exemplet skriver den första koden “Iamapythongeek” och den andra koden “Jag är en pytonnörd”. Operationen join() är effektivare och snabbare än ‘+’. Det håller också koden ren. Vem vill inte ha snabbare och renare kod? Så försök att använda join() istället för ‘+’ för att sammanfoga strängar.
09. Profilera din kod
Profilering är ett klassiskt sätt att optimera kod. Det finns många moduler för att mäta statistiken för ett program. Dessa låter oss veta var programmet spenderar för mycket tid och vad vi ska göra för att optimera det. Så, för att säkerställa optimering, utför några tester och förbättra programmet för att förbättra effektiviteten.
Timern är en av profilerna. Du kan använda den var som helst i koden och hitta exekveringstiden för varje steg. Då kan vi förbättra programmet där det tar för mycket tid. Dessutom finns det en inbyggd profileringsmodul som heter LineProfiler. Den ger också en beskrivande rapport om den tid som går åt. Det finns flera profiler som du kan lära dig genom att läsa pythonböcker.
10. Håll dig uppdaterad: Använd den senaste versionen av Python
Det finns tusentals utvecklare som regelbundet lägger till fler funktioner till python. De moduler och biblioteksfunktioner vi använder idag kommer att vara föråldrade med morgondagens utveckling. Python-utvecklare gör språket snabbare och mer tillförlitligt dag för dag. Varje ny version har ökat sin prestanda.
Så vi måste uppdatera biblioteken till deras senaste version. Python 3.9 är den senaste versionen nu. Många python 2-bibliotek kanske inte körs på python3. Låt oss ha det i åtanke och alltid använda den senaste versionen för maximal prestanda.
Till sist, Perspektiv
Värdet av Python-utvecklare i världen ökar dag för dag. Så vad väntar du på! Det är på tiden att du börjar lära dig hur du snabbar upp Python-koden. De tips och tricks vi tillhandahåller kommer säkert att hjälpa dig att skriva effektiva koder. Om du följer dem kan vi hoppas att du kan förbättra din kod och komma in på mer avancerade python-grejer.
Vi har försökt visa alla de bästa tipsen och tricken som behövs för att snabba upp din kod. Vi hoppas att artikeln har besvarat de flesta av dina frågor. Nu är resten upp till dig. Men det finns inget slut på kunskap och det finns inget slut på lärande. Så om vi har missat något viktigt, vänligen meddela oss. Lycka till med lärandet!
