Lijstbegrip gebruiken in Python

Lijstbegrip gebruiken in Python

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 je niet weet waar je het in je code moet toepassen. Hier laten we u zien hoe u lijstbegrip in Python kunt gebruiken met enkele voorbeelden uit de praktijk.





Wat is lijstbegrip in Python en hoe werkt het?

Een lijst met items maken 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 of tekenreeksbewerkingen. 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.

muiswiel scrollt op en neer

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 eraan toe te voegen met een voor loop, laat Python's 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 al zeiden, 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 expressies in afzonderlijke variabelen stapelt. U kunt ze dus later raadplegen.





Je 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 praktijk is om de naam van alle items en hun prijzen te schrapen en beide in afzonderlijke 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.





Kijk naar het voorbeeld hieronder:

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

Zodra u de lusvariabelen hebt gekregen, kunt u ze in afzonderlijke kolommen in een DataFrame plaatsen met behulp van Python's Panda's.

Een lijstbegrip maken en gebruiken in Python

De voor lus is een essentiële iterator in een lijstbegrip. Over het algemeen heeft een lijstbegrip in Python dit formaat:

ComprehensionVariable = [expression for items in list]

Afdrukken BegripVariabele voert het resultaat van de bovenstaande code uit als een lijst.

Zorg er echter voor dat u een lijstbegrip 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 = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [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 for i in range(1, 11)]
print(multiplesOf3)
Output = [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 for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

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

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

Er is ook een geneste nodig voor lus:

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

U kunt ook een gewone genest hebben voor lus in een lijst begrip:

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

Je kunt strings ook manipuleren met Python-lijstbegrip. Laten we hieronder eens kijken naar het begrip van een woordteller:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 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:

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]

Je 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 heb er een speciale variabele voor. Laten we het bovenstaande begrip aanpassen om even getallen te genereren uit oneven:

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

Woordenboek en setbegrippen

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

Bekijk hieronder het voorbeeld van het woordenboekbegrip om te zien hoe het werkt:

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}

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

Verwant: Hoe arrays en lijsten werken in Python

Een setbegrip is een beetje vergelijkbaar met een lijstbegrip. Hier is een voorbeeld van een setbegrip:

hoe het ip-adres van de printer te vinden windows 7
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

In tegenstelling tot het begrip van een lijst, verwijdert het begrip van een set echter duplicaten:

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}

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

Kunt u elke keer lijstbegrip gebruiken?

We hebben verschillende voorbeelden van het begrijpen van lijsten bekeken en bekeken waar u ze kunt gebruiken. Echter, net als elke andere Python-methode, hangt de use-case 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 begrip van Python kan bijvoorbeeld ingewikkeld worden om te lezen. Dat schiet zijn doel voorbij.

Deel Deel Tweeten E-mail Hoe u Python-lijstbegrippen gebruikt (en wanneer u ze niet gebruikt)

Hier is alles wat u moet weten over het gebruik van deze geweldige functie van Python die uw productiviteit en de leesbaarheid van de code van de ene dag op de andere een boost zal geven.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Python
Over de auteur Idisou Omisola(94 artikelen gepubliceerd)

Idowu is gepassioneerd door alles wat slimme technologie en productiviteit betreft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij vindt het ook heerlijk om af en toe uit de routine te stappen. 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!

Klik hier om je te abonneren