Tijdig gebruik van lijstbegrip in Python kan iteratieve lijstbewerkingen voor u gemakkelijk maken. Behalve dat het een enkele regel is, is het beter leesbaar en wordt het efficiënter uitgevoerd.

U kunt echter opgewonden raken als u niet weet hoe u het moet gebruiken. Het kan zelfs nog frustrerender zijn als u niet weet waar u het in uw code moet toepassen. Hier laten we u zien hoe u lijstbegrip in Python kunt gebruiken met enkele praktijkvoorbeelden.

Wat is lijstbegrip in Python en hoe werkt het?

Het maken van een lijst met items met Python is eenvoudig. De taak kan echter een beetje vervelend worden wanneer u een lijst met waarden of items moet genereren op basis van wiskundige bewerkingen of tekenreeksen. Dat is wanneer het gebruik van lijstbegrip van pas kan komen.

Een voordeel van het gebruik van lijstbegrip is dat u meerdere bewerkingen in één lijst kunt uitvoeren.

Het creëert daarentegen nieuwe items en voegt ze toe aan een lege lijst die automatisch wordt gedeclareerd. Dus in plaats van handmatig een lege lijst te maken en hieraan toe te voegen met een

voor loop, laat Pythons lijstbegrip je dit automatisch doen zonder dat je je zorgen hoeft te maken over hoe de nieuwe lijst doorkomt.

De term "lijstbegrip" komt van het feit dat alle bewerkingen in een Python-lijst staan ​​die is toegewezen aan een benoemde variabele. Zoals we eerder hebben vermeld, kunt u hiermee specifieke bewerkingen uitvoeren in een enkele regel code. Vervolgens voegt het de uitvoer toe aan een nieuwe lijst.

Uiteindelijk kun je de output van een lijstbegrip ook voor andere doeleinden gebruiken. Dat komt omdat het uitdrukkingen in afzonderlijke variabelen stapelt. Zodat u ze later kunt raadplegen.

U zou bijvoorbeeld kunnen zijn een website scrapen met BeautifulSoup. Stel dat u van plan bent de naam van alle artikelen en hun prijzen van de website te halen.

U besluit vervolgens om de geschraapte gegevens in een CSV- of Excel-bestand te plaatsen. De ideale gewoonte is om de naam van alle items en hun prijzen te schrapen en ze allebei in aparte kolommen te plaatsen. Als u in dat geval echter een lijstbegrip gebruikt, zorgt u ervoor dat u de geschraapte gegevens in speciale variabelen hebt. U kunt dergelijke variabelen later converteren naar een Python DataFrame.

Bekijk het onderstaande voorbeeld:

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

Zodra u de geloopte variabelen hebt ontvangen, kunt u ze met Python's Panda's in afzonderlijke kolommen in een dataframe plaatsen.

Een lijstbegrip maken en gebruiken in Python

De voor loop is een essentiële iterator bij het begrijpen van een lijst. Over het algemeen heeft een lijstbegrip in Python dit formaat:

ComprehensionVariable = [uitdrukking voor items in lijst]

Afdrukken Begrip Variabel geeft het resultaat van de bovenstaande code als een lijst weer.

Let er echter op dat u het begrip van een lijst niet verwart met een open voor lus.

Laten we bijvoorbeeld gebruik een open-for-lus om een ​​lijst te krijgen van alle veelvouden van drie tussen 1 en 30:

myList = []
voor i in bereik (1, 11):
myList.append (i * 3)
print (myList)
Uitgang: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Laten we, om de twee te vergelijken, hetzelfde doen met behulp van een lijstbegrip:

multiplesOf3 = [i * 3 voor i in bereik (1, 11)]
print (multiplesOf3)
Uitgang = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

U kunt ook een lijstbegrip gebruiken met voorwaardelijke uitspraken. De onderstaande voorbeeldcode drukt alle oneven getallen tussen 1 en 10 af:

oddNumbers = [i voor i in bereik (1, 11) indien niet i% 2 == 2]
print (oneven nummers)
Uitgang = [1, 3, 5, 7, 9]

Laten we nu ook de bovenstaande code herschrijven met een open voor lus:

myList = []
voor i in bereik (1, 11):
zo niet ik% 2 == 0:
myList.append (i)
print (myList)
Uitgang: [1, 3, 5, 7, 9]

Verwant: Een lijst toevoegen in Python

Een lijstbegrip accepteert ook geneste if-statements:

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

Er is ook een genest voor lus:

someNums = [[i * 2 voor i in bereik (1, 3)] voor _ in bereik (4)]
afdrukken (someNums)

U kunt ook een gewoon genest voor lus in een lijstbegrip:

someNums = [i * 2 voor i in bereik (1, 3) voor k in bereik (4)]

Je kunt strings ook manipuleren met Python-lijstbegrip. Laten we eens kijken naar een woord tegen begrip hieronder:

word = ["Dit is een tutorial over het begrijpen van Python-lijsten"]
wordCounter = [i.count ('') + 1 voor i in woord]
print (wordCounter)
Uitgang: 7

Een lijstbegrip kan ook een functie accepteren die een specifieke bewerking uitvoert. Laten we een vermenigvuldigingsfunctie invoegen die even getallen in een lijstbegrip krijgt om te zien hoe dit werkt:

Getallen = [4, 7, 8, 15, 17, 10]
def vermenigvuldiger (n):
veelvoud = n * 2
meerdere retourneren
multipleEven = [vermenigvuldiger (i) voor i in getallen als i% 2 == 0]
print (multipleEven)
Uitgang: [8, 16, 20]

U kunt de bovenstaande code nog steeds in een enkele functie schrijven zonder begrip te gebruiken. Maar een lijstbegrip is handig wanneer u verschillende iteraties moet uitvoeren en elk ervan in afzonderlijke variabelen moet plaatsen.

U kunt bijvoorbeeld een andere bewerking uitvoeren op n en er een speciale variabele voor hebben. Laten we het bovenstaande begrip aanpassen om even getallen te genereren uit oneven:

multipleEvenFromOdds = [vermenigvuldiger (i) voor i in getallen indien niet i% 2 == 0]
print (multipleEvenFromOdds)
Uitgang: [14, 30, 34]

Woordenboek en begrip instellen

Naast een lijstbegrip biedt Python ook een woordenboek en een setbegripfunctionaliteit.

Bekijk het onderstaande voorbeeldwoordenboek om te zien hoe het werkt:

corresponderend = {i: i * 2 voor i in bereik (10) indien niet i% 2 == 0}
afdrukken (corr)
Uitvoer: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

De bovenstaande code doorloopt de lijst met getallen tussen 1 en 9 en maakt er de sleutels van. Vervolgens vertelt het Python om elke sleutel met twee te vermenigvuldigen. Ten slotte presenteert het de resultaten van die bewerking als de overeenkomstige waarden voor elke sleutel in de resulterende array.

Verwant: Hoe arrays en lijsten werken in Python

Een vast begrip lijkt een beetje op een lijstbegrip. Hier is een voorbeeld van een vast begrip:

getallen = {i ** (2) voor i in bereik (10) als i% 4 == 0}
print (cijfers)
Uitvoer: {0, 16, 64}

In tegenstelling tot lijstbegrip verwijdert setbegrip echter duplicaten:

nums = {i voor i in bereik (20) als i% 2 == 1 voor k in bereik (10) als k% 2 == 1}
print (nums)
Uitvoer: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

U kunt de bovenstaande code uitproberen met behulp van een lijstbegrip om te zien hoe ze verschillen.

Kunt u elke keer gebruik maken van lijstbegrip?

We hebben verschillende voorbeelden van lijstbegrip bekeken en waar u ze kunt gebruiken. Net als bij elke andere Python-methode hangt het gebruik van een lijstbegrip af van het specifieke probleem dat u wilt oplossen. Gebruik het daarom alleen als het ideaal is voor het specifieke probleem dat u wilt oplossen.

Een van de doelen van het begrijpen van lijsten is om uw code te vereenvoudigen en leesbaarder te maken. Zorg er dus voor dat u complexiteit vermijdt wanneer u ermee omgaat. Een lang Python-begrip kan bijvoorbeeld moeilijk te lezen worden. Dat verslaat zijn doel.

E-mail
Hoe Python-lijstbegrip te gebruiken (en wanneer u ze niet moet gebruiken)

Hier is alles wat u moet weten over het gebruik van deze geweldige functie van Python die uw productiviteit en codeleesbaarheid van de ene op de andere dag zal verbeteren.

Gerelateerde onderwerpen
  • Programmeren
  • Python
Over de auteur
Idowu Omisola (55 Artikelen gepubliceerd)

Idowu is gepassioneerd door alles wat met slimme technologie en productiviteit te maken heeft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij houdt er ook van om af en toe de routine te doorbreken. Zijn passie om mensen de weg te wijzen in moderne technologie, motiveert hem om meer te schrijven.

Meer van Idowu Omisola

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.