Hvordan bruke listeforståelse i Python

Hvordan bruke listeforståelse i Python

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.





Imidlertid kan du 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 det i koden din. Her viser vi deg hvordan du bruker listeforståelse i Python med noen eksempler fra det virkelige livet.





Hva er listeforståelse i Python og hvordan fungerer det?

Det er enkelt å lage en liste med elementer med Python. Oppgaven kan imidlertid bli litt kjedelig når du trenger å generere en liste med verdier eller elementer fra matematiske operasjoner eller strengoperasjoner. Det er da bruk av listeforståelse kan komme godt med.





En fordel med å bruke listeforståelse er at du kan utføre flere operasjoner i en enkelt liste.

Hvordan laste ned pokemon go på pc

Derimot oppretter den nye elementer og legger dem til i en tom liste som den erklærer automatisk. Så i stedet for å lage en tom liste manuelt og legge den til med en til loop, lar Pythons listeforståelse deg gjøre dette automatisk uten at du bry deg om hvordan den nye listen kommer frem.



Begrepet 'listeforståelse' kommer av det faktum at alle operasjoner er i en Python -liste som er tilordnet en navngitt variabel. Som vi nevnte tidligere, lar den deg utføre spesifikke operasjoner i en enkelt kodelinje. Det legger deretter utgangen til en ny liste.

Til syvende og sist kan du også bruke utdataene fra en listeforståelse til andre formål. Det er fordi det 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 elementene og prisene deres fra nettstedet.

Du bestemmer deg deretter for å legge de skrapede dataene i en CSV- eller en Excel -fil. Den ideelle praksisen er å skrape navnet på alle elementene og deres priser og plassere dem begge i separate kolonner. Imidlertid sikrer bruk av en listeforståelse at du har de skrapede dataene i dedikerte variabler. Du kan deretter konvertere slike variabler til en Python DataFrame senere.





Se på eksemplet nedenfor:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Når du har fått de loopede variablene, kan du legge 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 = [expression for items in list]

Printing Forståelse Variabel sender ut resultatet av koden ovenfor som en liste.

Vær imidlertid forsiktig så du ikke forveksler en listeforståelse med en åpen til Løkke.

For eksempel, la oss bruk en open for loop for å få en liste over alle multipler av tre mellom 1 og 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [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 in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Du kan også bruke en listeforståelse med betingede utsagn. Eksempelkoden nedenfor skriver ut alle oddetall mellom 1 og 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

La oss nå skrive om koden ovenfor ved hjelp av en åpen til Løkke:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

I slekt: Slik legger du til en liste i Python

En listeforståelse godtar også nestede hvis utsagn:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Det tar også en nestet til Løkke:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Du kan også ha en vanlig nestet til sløyfe i en listeforståelse:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Du kan også manipulere strenger med Python -listeforståelse. La oss se på en ordmotforståelse nedenfor:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

En listeforståelse kan også godta en funksjon som utfører en bestemt operasjon. La oss sette inn en multiplikatorfunksjon som får partall i en listeforståelse for å se hvordan dette fungerer:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [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 den. La oss endre forståelsen ovenfor for å generere partall fra oddetall:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Ordbok og sett forståelse

I tillegg til en listeforståelse, tilbyr Python også en ordbok og en sett forståelsesfunksjonalitet.

Ta en titt på eksempelordforståelsen nedenfor for å se hvordan det fungerer:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Koden ovenfor går gjennom listen over tall mellom 1 og 9 og gjør dem til tastene. Den forteller deretter Python å multiplisere hver nøkkel med to. Til slutt presenterer den resultatene av operasjonen som de tilsvarende verdiene for hver nøkkel i den resulterende matrisen.

I slekt: Hvordan matriser og lister fungerer i Python

En sett forståelse ligner litt på en listeforståelse. Her er et eksempel på en sett forståelse:

hva er billigere uber eller lyft
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

I motsetning til listeforståelse, fjerner sett forståelse imidlertid duplikater:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {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 tatt en titt på forskjellige eksempler på listeforståelse og hvor du kan bruke dem. Imidlertid, som alle andre Python-metoder, 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 og gjøre den mer lesbar. Så sørg for at du unngår kompleksitet når du håndterer det. For eksempel kan en lang Python -forståelse bli kompleks å lese. Det beseirer formålet.

Dele Dele kvitring E -post Slik bruker du Python List Comprehensions (og når du ikke skal bruke dem)

Her er alt du trenger å vite om bruk av denne fantastiske funksjonen i Python som vil øke produktiviteten og kodelesbarheten over natt.

Les neste
Relaterte temaer
  • Programmering
  • Python
Om forfatteren Idisou Omisola(94 artikler publisert)

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 liker også å bryte fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.

Mer fra Idowu Omisola

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere