Python er et af de hurtigst voksende programmeringssprog. Udviklere bruger det til maskinlæring og datavidenskab, blandt andre typer applikationer. Før du begynder at lære mere avancerede aspekter af sproget, bør du mestre en af de mest almindelige datastrukturer: lister.
Lister i Python er arrays, der er kendt fra andre programmeringssprog som C og C++. Du kan ændre størrelsen på en liste, og Python indbygger forskellige listemetoder for nemheds skyld. Du kan gemme flere datatyper på en liste, såsom strenge, objekter og endda andre lister.
Hvorfor bruge forskellige løkketeknikker?
Du spekulerer måske på, om det er værd at lære forskellige måder at krydse en Python-liste på, når en til loop kan gøre jobbet.
Ofte er det nemmere at bruge en stenografimetode, såsom en listeforståelse eller lambda-funktion, for at holde din kode kortfattet og mindre rodet. Det hjælper også med at beslutte, hvilken gennemløbsteknik der ville være mest effektiv for en kompleks liste med mange elementer.
Endnu vigtigere er det almindeligt, at interviewere stiller komplekse spørgsmål om listegennemgang. Hvis du kender de forskellige måder at krydse lister på, vil du være bedre forberedt til at besvare de svære spørgsmål.
1. Traversering ved hjælp af For Loop og Range metode
En af de mest almindelige metoder til at krydse en Python-liste er at bruge en for-løkke, og de minder meget om andre programmeringssprog.
arr = [10, 20, 30, 40]
for val i arr:
Print('værdi', val)
Alternativt kan du også bruge rækkevidde() metode til at have mere kontrol over din til sløjfe. Det rækkevidde() metoden tager tre argumenter:
- start: Angiver startindekset for for-løkkegennemgangen.
- stop: Fortæller programmet det endelige/stop-indeks for for-løkkegennemgangen. Det er almindeligt at bruge listens længde (antal elementer) som stopindeks.
- trin: Argumentet for trinstørrelse er valgfrit. Hvis den er angivet, indstiller den det beløb, som for-løkken øger sin løbende tæller med hver gang. Som standard er trinstørrelsen 1.
For at krydse en Python-liste ved hjælp af range():
arr = [10, 20, 30, 40, 50, 60]
for nøgle i området (0, len (arr), 2):
Print('num', nøgle)
Ovenstående eksempel kører til sløjfe fra indeks 0 indtil længden af arrayet og inkrementere sløjfetælleren med 2.
2. Stenografisk krydsning ved hjælp af listeforståelse
En af Pythons mest intuitive funktioner er listeforståelse. Det giver dig mulighed for at skrive enkle en-linje løsninger til en række forskellige problemer.
For eksempel, for at beregne kvadratet af de første 10 tal, kan du blot bruge:
sq = [x ** 2 for x i området (10)]
Med en liste over numre kan du udskrive dem ved at bruge listeforståelse som følger:
arr = [1, 3, 5, 7, 9]
[Print(val) til val i arr]
Listeforståelser er meget kraftfulde og kan gøre kodning meget let, når den først er mestret, så sørg for at bruge lidt tid på at øve dem godt.
3. Brug af in-line lambdafunktioner til at krydse en liste
Normalt erklærer vi funktioner i Python ved hjælp af def nøgleord og skal give en dedikeret funktionstekst og overskrift. Lambda-funktioner er en kraftfuld Python-funktion, hvilket gør det meget nemmere at skrive enkel, kortere kode. De har intet navn og kan kun indeholde et enkelt udtryk. Du kan dog overføre et vilkårligt antal parametre til en lambda-funktion.
Når det kombineres med kort() metode, kan lambdafunktionen effektivt fungere som en til sløjfe. For at udskrive en liste over tal ved hjælp af en kombination af lambda-funktioner og kort():
arr = [1, 3, 4, 5, 6, 7, 8]
myFun = liste(kort (lambda z: z, arr))
Print(myFun)
Python-løkker er enkle, men allestedsnærværende
Loops er essentielle i alle programmeringssprog, og Python er ikke anderledes. De fleste programmer, du skriver, vil på et tidspunkt indeholde en loop, i en eller anden form.
Dette går dobbelt, hvis du vil bruge Python til datavidenskab eller maskinlæringsprojekter.