Rettidig bruk av listeforståelse i Python kan gjøre iterative listeoperasjoner enkle for deg. I tillegg til å være en enkelt linje, er den mer lesbar og utføres mer effektivt.
Du kan imidlertid bli opparbeidet hvis du ikke vet hvordan du bruker den. Det kan til og med være mer frustrerende hvis du ikke vet hvor du skal bruke den i koden din. Her viser vi deg hvordan du bruker listeforståelse i Python med noen virkelige eksempler.
Hva er listeforståelse i Python, og hvordan fungerer det?
Det er enkelt å lage en liste over elementer med Python. Oppgaven kan imidlertid bli litt kjedelig når du trenger å generere en liste over verdier eller elementer fra matematiske eller strengoperasjoner. Det er da bruk av listeforståelse kan være nyttig.
En fordel med å bruke listeforståelse er at du kan utføre flere operasjoner i en enkelt liste.
Derimot oppretter den nye elementer og legger dem til en tom liste den erklærer automatisk. Så i stedet for å lage en tom liste manuelt og legge til den med en
til loop, Pythons listeforståelse lar deg gjøre dette automatisk uten at du bry deg om hvordan den nye listen kommer gjennom.Begrepet "listeforståelse" kommer av det faktum at alle operasjoner er i en Python-liste tilordnet en navngitt variabel. Som vi sa tidligere, lar den deg utføre spesifikke operasjoner i en enkelt kodelinje. Deretter legger den utdataene til en ny liste.
Til slutt kan du også bruke utdataene fra en listeforståelse til andre formål. Det er fordi den stabler uttrykk i separate variabler. Så du kan henvise til dem senere.
For eksempel kan du være det skrape et nettsted med BeautifulSoup. Anta at du har tenkt å få navnet på alle varene og deres priser fra nettstedet.
Du bestemmer deg deretter for å legge skrapede data i en CSV- eller en Excel-fil. Den ideelle fremgangsmåten er å skrape navnet på alle varene og deres priser og plassere dem begge i separate kolonner. Imidlertid, ved å bruke en listeforståelse, i så fall, sikrer du at du har skrapede data i dedikerte variabler. Du kan deretter konvertere slike variabler til en Python DataFrame senere.
Se på eksemplet nedenfor:
Produkter = [i.text for i i bs.find_all ('navnelapper')]
Pris = [i.text for i i bs.find_all ('prislapper')]
Når du har fått de løkkede variablene, kan du deretter sette dem i separate kolonner i en DataFrame ved hjelp av Pythons Pandas.
Hvordan lage og bruke en listeforståelse i Python
De til loop er en viktig iterator i en listeforståelse. Vanligvis tar en listeforståelse i Python dette formatet:
ComprehensionVariable = [uttrykk for elementer i listen]
Printing ForståelseVariabel sender ut resultatet av ovennevnte kode som en liste.
Vær imidlertid forsiktig så du ikke forveksler en listeforståelse med en åpen til Løkke.
La oss for eksempel gjøre det bruk en open for loop for å få en liste over alle multipler på tre mellom 1 og 30:
myList = []
for jeg innen rekkevidde (1, 11):
myList.append (i * 3)
skriv ut (myList)
Utgang: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
For å sammenligne de to, la oss gjøre det samme ved å bruke en listeforståelse:
multiplesOf3 = [i * 3 for i i rekkevidde (1, 11)]
skriv ut (multiplesOf3)
Utgang = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Du kan også bruke en listeforståelse med betingede uttalelser. Eksempelkoden nedenfor skriver ut alle oddetall mellom 1 og 10:
oddNumbers = [i for i i området (1, 11) hvis ikke i% 2 == 2]
skriv ut (oddNumbers)
Utgang = [1, 3, 5, 7, 9]
La oss nå omskrive koden ovenfor ved hjelp av en åpen til Løkke:
myList = []
for jeg innen rekkevidde (1, 11):
hvis ikke i% 2 == 0:
myList.append (i)
skriv ut (myList)
Utgang: [1, 3, 5, 7, 9]
I slekt: Hvordan legge til en liste i Python
En listeforståelse godtar også nestede hvis utsagn:
oddNumbers = [i for i i området (1, 11) hvis ikke i% 2 == 0 hvis jeg <4]
skriv ut (oddNumbers)
Utgang: [1, 3]
Det tar også en nestet til Løkke:
someNums = [[i * 2 for i i området (1, 3)] for _ i området (4)]
skriv ut (noenNumre)
Du kan også ha en vanlig nestet til løkke i en listeforståelse:
someNums = [i * 2 for i i rekkevidde (1, 3) for k i område (4)]
Du kan også manipulere strenger med Python-listeforståelse. La oss ta en titt på en ordforståelse nedenfor:
word = ["Dette er en pythonlisteforståelsesveiledning"]
wordCounter = [i.count ('') + 1 for i in word]
skriv ut (wordCounter)
Utgang: 7
En listeforståelse kan også akseptere en funksjon som utfører en bestemt operasjon. La oss sette inn en multiplikasjonsfunksjon som får like tall i en listeforståelse for å se hvordan dette fungerer:
Tall = [4, 7, 8, 15, 17, 10]
def multiplikator (n):
flere = n * 2
returner flere
multipleEven = [multiplikator (i) for i i tall hvis i% 2 == 0]
skriv ut (multipleEven)
Utgang: [8, 16, 20]
Du kan fortsatt skrive koden ovenfor i en enkelt funksjon uten å bruke forståelse. Men en listeforståelse er nyttig når du trenger å utføre flere iterasjoner og plassere hver av dem i separate variabler.
For eksempel kan du utføre en annen operasjon på n og har en dedikert variabel for det. La oss endre forståelsen ovenfor for å generere partall fra oddetall:
multipleEvenFromOdds = [multiplikator (i) for i i tall hvis ikke i% 2 == 0]
skriv ut (multipleEvenFromOdds)
Utgang: [14, 30, 34]
Ordbok og sett forståelser
I tillegg til en listeforståelse, tilbyr Python også en ordbok og en angitt forståelsesfunksjonalitet.
Ta en titt på eksemplet på ordbokforståelsen nedenfor for å se hvordan den fungerer:
tilsvarende = {i: i * 2 for i innen rekkevidde (10) hvis ikke i% 2 == 0}
skriv ut (corr)
Utgang: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
Koden over gjentar seg gjennom listen over tall mellom 1 og 9 og gjør dem til tastene. Den forteller Python å multiplisere hver tast med to. Til slutt presenterer den resultatene av denne operasjonen som de tilsvarende verdiene for hver nøkkel i den resulterende matrisen.
I slekt: Hvordan arrays og lister fungerer i Python
En sett forståelse er litt lik en listeforståelse. Her er et eksempel på en forståelse:
tall = {i ** (2) for i innen rekkevidde (10) hvis jeg% 4 == 0}
skriv ut (tall)
Utgang: {0, 16, 64}
I motsetning til listeforståelse fjerner imidlertid forståelse duplikater:
nums = {i for i i området (20) hvis jeg% 2 == 1 for k i området (10) hvis k% 2 == 1}
skriv ut (nums)
Utgang: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
Du kan prøve koden ovenfor ved å bruke en listeforståelse for å se hvordan de er forskjellige.
Kan du bruke listeforståelse hver gang?
Vi har sett på forskjellige eksempler på listeforståelse og hvor du kan bruke dem. Imidlertid, som enhver annen Python-metode, avhenger bruken av en listeforståelse av det spesifikke problemet du ønsker å løse. Derfor bør du bare bruke den hvis den er ideell for det spesifikke problemet du ønsker å løse.
Et av formålene med listeforståelse er å forenkle koden din og gjøre den mer lesbar. Så sørg for at du unngår kompleksitet når du arbeider med det. For eksempel kan en lang Python-forståelse bli kompleks å lese. Det beseirer formålet.
Her er alt du trenger å vite om å bruke denne fantastiske funksjonen i Python som vil øke produktiviteten og kodelesbarheten over natten.
- Programmering
- Python

Idowu brenner for alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han elsker også å bryte seg fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.
Abonner på vårt nyhetsbrev
Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Ett steg til…!
Bekreft e-postadressen din i e-posten vi nettopp sendte deg.