Sådan bruges listeforståelse i Python

Sådan bruges listeforståelse i Python

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æsbar og udføres mere effektivt.





Du kan dog blive træt, 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 eksempler fra det virkelige liv.





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

Det er let at oprette en liste med elementer med Python. Opgaven kan dog blive lidt kedelig, når du skal generere en liste med værdier eller elementer fra matematiske eller strengoperationer. Det er, når du kan bruge listeforståelse.





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

hvordan man aktiverer youtube på alexa

I modsætning hertil opretter den nye elementer og tilføjer dem til en tom liste, som den erklærer automatisk. Så i stedet for at lave en tom liste manuelt og tilføje den med en til loop, giver Pythons listeforståelse dig mulighed for at gøre dette automatisk, uden at du skal bekymre dig om, hvordan den nye liste kommer igennem.



Udtrykket 'listeforståelse' stammer fra det faktum, at alle operationer er i en Python -liste, der er tildelt en navngivet variabel. Som vi sagde tidligere, lader det dig udføre specifikke operationer i en enkelt kodelinje. Det tilføjer derefter output til en ny liste.

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





Det kan du for eksempel være skrabe et websted med BeautifulSoup . Antag, at du har til hensigt at få navnet på alle varer og deres priser fra webstedet.

Du beslutter dig derefter for at lægge 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. Ved at bruge en listeforståelse sikrer du i så fald, at du har de skrabede data i dedikerede variabler. Du kan derefter konvertere sådanne variabler til en Python DataFrame senere.





Se eksemplet herunder:

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 får de loopede variabler, kan du derefter placere dem i separate kolonner i en DataFrame ved hjælp af Pythons Pandas.

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

Det til loop er en væsentlig iterator i en listeforståelse. Generelt har en listeforståelse i Python dette format:

ComprehensionVariable = [expression for items in list]

Trykning Forståelse Variabel sender resultatet af ovenstående kode som en liste.

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

Lad os f.eks brug en open for loop for at få en liste over alle multipler af tre mellem 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 at sammenligne de to, lad os gøre det samme ved hjælp af 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å bruge en listeforståelse med betingede udsagn. Eksempelkoden herunder udskriver alle ulige tal mellem 1 og 10:

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

Lad os nu også omskrive koden ovenfor ved hjælp af en open til loop:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(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 in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Det tager også en indlejret til loop:

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

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

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

Du kan også manipulere strenge med Python -listeforståelse. Lad os se på en ordmotforståelse herunder:

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å acceptere en funktion, der udfører en bestemt handling. Lad os indsætte en multiplikatorfunktion, der får lige tal i en listeforståelse for at 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 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 operation på n og har en dedikeret variabel til det. Lad os ændre forståelsen ovenfor for at generere lige tal fra ulige:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not 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 sæt forståelsesfunktionalitet.

Tag et kig på eksemplet på ordbogsforståelse herunder for at 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 gentager sig gennem listen over tal mellem 1 og 9 og gør dem til tasterne. Det fortæller derefter Python at gange hver nøgle med to. Endelig præsenterer den resultaterne af denne operation som de tilsvarende værdier for hver nøgle i det resulterende array.

Relaterede: Hvordan arrays og lister fungerer i Python

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

ting du kan gøre med hindbær pi
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

I modsætning til listeforståelse fjerner sætforståelse imidlertid dubletter:

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 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. Men som enhver anden Python-metode afhænger brugen af ​​en listeforståelse af det specifikke problem, du ønsker at løse. Derfor bør du kun bruge den, hvis den er ideel 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æsbar. Så sørg for at undgå kompleksitet, når du håndterer det. For eksempel kan en lang Python -forståelse blive kompleks at læse. Det besejrer dets formål.

Del Del Tweet E -mail Sådan bruges Python -listeforståelser (og hvornår de ikke skal bruges)

Her er alt, hvad du har brug for at vide om at bruge denne fantastiske funktion i Python, der øger din produktivitet og kodelæsbarhed natten over.

Læs Næste
Relaterede emner
  • Programmering
  • Python
Om forfatteren Idisou Omisola(94 artikler udgivet)

Idowu brænder for alt smart teknologi og produktivitet. I 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 passion for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.

Mere fra Idowu Omisola

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere