Rettidig brug af listeforståelse i Python kan gøre iterative listeoperationer lette for dig. Ud over at være en enkelt linje er den mere læselig og udføres mere effektivt.

Du kan dog blive oparbejdet, hvis du ikke ved, hvordan du bruger det. Det kan endda være mere frustrerende, hvis du ikke ved, hvor du skal anvende det i din kode. Her viser vi dig, hvordan du bruger listeforståelse i Python med nogle virkelige eksempler.

Hvad er listeforståelse i Python, og hvordan fungerer det?

Det er nemt at oprette en liste over emner med Python. Opgaven kan dog blive lidt kedelig, når du har brug for at generere en liste over værdier eller emner fra matematiske eller strengoperationer. Det er når brug af listeforståelse kan komme til nytte.

En fordel ved at bruge listeforståelse er, at du kan udføre flere operationer på en enkelt liste.

I modsætning hertil opretter det nye emner og føjer dem til en tom liste, den erklærer automatisk. Så i stedet for at lave en tom liste manuelt og tilføje den med en

instagram viewer
til loop, Pythons listeforståelse giver dig mulighed for at gøre dette automatisk, uden at du bekymrer dig om, hvordan den nye liste kommer igennem.

Udtrykket "listeforståelse" kommer fra det faktum, at alle operationer er på en Python-liste tildelt en navngivet variabel. Som vi sagde tidligere, lader det dig udføre specifikke operationer i en enkelt kodelinje. Derefter føjes output til en ny liste.

I sidste ende kan du også bruge output fra en listeforståelse til andre formål. Det skyldes, at det stabler udtryk i separate variabler. Så du kan henvise til dem senere.

For eksempel kan du være skrabning af et websted med BeautifulSoup. Antag, at du agter at få navnet på alle varer og deres priser fra hjemmesiden.

Du beslutter dig derefter for at placere de skrabede data i en CSV- eller en Excel-fil. Den ideelle praksis er at skrabe navnet på alle varer og deres priser og placere dem begge i separate kolonner. Brug af en listeforståelse i det tilfælde sikrer dog, at du har skrabet data i dedikerede variabler. Du kan derefter konvertere sådanne variabler til en Python DataFrame senere.

Se eksemplet nedenfor:

Produkter = [i.tekst til jeg i bs.find_all ('navnekoder')]
Pris = [i.tekst til jeg i bs.find_all ('prismærker')]

Når du har fået de loopede variabler, kan du derefter placere dem i separate kolonner i en DataFrame ved hjælp af Pythons Pandaer.

Sådan oprettes og bruges en listeforståelse i Python

Det til loop er en vigtig iterator i en listeforståelse. Generelt tager en listeforståelse i Python dette format:

ComprehensionVariable = [udtryk for emner på listen]

Trykning ForståelseVariabel output resultatet af ovenstående kode som en liste.

Vær dog forsigtig med ikke at forveksle en listeforståelse med en åben til løkke.

Lad os f.eks brug en åben til løkke for at få en liste over alle multipla af tre mellem 1 og 30:

myList = []
for jeg inden for rækkevidde (1, 11):
myList.append (i * 3)
udskrive (myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

For at sammenligne de to, lad os gøre det samme ved hjælp af en listeforståelse:

multiplesOf3 = [i * 3 for i i området (1, 11)]
print (multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Du kan også bruge en listeforståelse med betingede udsagn. Eksempelkoden nedenfor udskriver alle ulige tal mellem 1 og 10:

oddNumbers = [i for i i området (1, 11) hvis ikke i% 2 == 2]
print (ulige numre)
Output = [1, 3, 5, 7, 9]

Lad os nu også omskrive koden ovenfor ved hjælp af en åben til løkke:

myList = []
for jeg inden for rækkevidde (1, 11):
hvis ikke i% 2 == 0:
myList.append (i)
udskrive (myList)
Output: [1, 3, 5, 7, 9]

Relaterede: Sådan tilføjes en liste i Python

En listeforståelse accepterer også indlejrede hvis udsagn:

oddNumbers = [i for i i området (1, 11) hvis ikke i% 2 == 0 hvis jeg <4]
print (ulige numre)
Output: [1, 3]

Det tager også en indlejret til løkke:

someNums = [[i * 2 for i inden for rækkevidde (1, 3)] for _ i rækkevidde (4)]
udskrive (nogleNumre)

Du kan også have en almindelig indlejret til loop i en listeforståelse:

someNums = [i * 2 for i inden for rækkevidde (1, 3) for k i rækkevidde (4)]

Du kan også manipulere strenge med Python-listeforståelse. Lad os se på ordforståelsen nedenfor:

word = ["Dette er en pythonlisteforståelsesvejledning"]
wordCounter = [i.count ('') + 1 for i i word]
print (wordCounter)
Udgang: 7

En listeforståelse kan også acceptere en funktion, der udfører en bestemt operation. Lad os indsætte en multiplikatorfunktion, der får lige tal i en listeforståelse for at se, hvordan dette fungerer:

Tal = [4, 7, 8, 15, 17, 10]
def multiplikator (n):
multiple = n * 2
returner flere
multipleEven = [multiplikator (i) for i i tal, hvis jeg% 2 == 0]
udskrive (multipleEven)
Output: [8, 16, 20]

Du kan stadig skrive koden ovenfor i en enkelt funktion uden at bruge forståelse. Men en listeforståelse er nyttig, når du skal udføre flere iterationer og placere hver af dem i separate variabler.

For eksempel kan du udføre en anden handling på n og har en dedikeret variabel til det. Lad os ændre forståelsen ovenfor for at generere lige tal fra ulige:

multipleEvenFromOdds = [multiplikator (i) for i i tal, hvis ikke i% 2 == 0]
print (multipleEvenFromOdds)
Output: [14, 30, 34]

Ordbog og sæt forståelser

Ud over en listeforståelse tilbyder Python også en ordbog og en indstillet forståelsesfunktionalitet.

Se på eksemplet på ordbogsforståelse nedenfor for at se, hvordan det fungerer:

tilsvarende = {i: i * 2 for i inden for rækkevidde (10) hvis ikke i% 2 == 0}
print (corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Koden ovenfor gentager listen over numre mellem 1 og 9 og gør dem til tasterne. Det fortæller derefter Python at multiplicere hver tast med to. Endelig præsenterer den resultaterne af denne operation som de tilsvarende værdier for hver nøgle i det resulterende array.

Relaterede: Sådan fungerer arrays og lister i Python

En sæt forståelse svarer lidt til en listeforståelse. Her er et eksempel på en sæt forståelse:

tal = {i ** (2) for i inden for rækkevidde (10), hvis jeg% 4 == 0}
print (tal)
Output: {0, 16, 64}

Men i modsætning til listeforståelse fjerner sætforståelse duplikater:

nums = {i for i i området (20) hvis i% 2 == 1 for k i området (10) hvis k% 2 == 1}
print (nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Du kan prøve koden ovenfor ved hjælp af en listeforståelse for at se, hvordan de adskiller sig.

Kan du bruge listeforståelse hver gang?

Vi har kigget på forskellige eksempler på listeforståelse, og hvor du kan bruge dem. Som enhver anden Python-metode afhænger brugen af ​​en listeforståelse dog af det specifikke problem, du ønsker at løse. Derfor skal du kun bruge det, hvis det er ideelt til det specifikke problem, du ønsker at løse.

Et af formålene med listeforståelse er at forenkle din kode og gøre den mere læselig. Så sørg for at undgå kompleksitet, når du beskæftiger dig med det. For eksempel kan en lang Python-forståelse blive kompleks at læse. Det overvinder sit formål.

E-mail
Sådan bruges Python List Comprehensions (og hvornår de ikke skal bruges)

Her er alt hvad du behøver at vide om brugen af ​​denne fantastiske funktion i Python, der øger din produktivitet og kodelæsbarhed natten over.

Relaterede emner
  • Programmering
  • Python
Om forfatteren
Idowu Omisola (55 udgivne artikler)

Idowu brænder for alt smart tech og produktivitet. På fritiden leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde væk fra rutinen en gang imellem. Hans lidenskab for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.

Mere fra Idowu Omisola

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.