Laten we het hebben over iets dat vrij uniek is voor Python en dingen heel, heel leuk maakt als Python-programmeurs, en
het wordt bevattingen genoemd, het is een van onze belangrijkste termen.
Begrippen.
Wat zijn zij?
Nou, ze worden eigenlijk lijstbegrippen of setbegrippen of woordenboekbegrippen genoemd.
En dit zijn enkele van de gegevenstypen die we in Python hebben.
Trouwens, terwijl ik aan het opnemen ben, zijn er enkele vogels op de
achtergrond die fluiten.
Ik dacht dat het leuk zou zijn om gewoon vast te leggen van vogels die op de achtergrond fluiten.
Ik denk dat het vredig voor je zal zijn als je geïrriteerd raakt.
Het spijt me, maar hey, de vogels moeten ook plezier hebben.
OK, dus wat zijn deze begrippen?
Nou, ze zijn een snelle manier voor ons om lijsten of sets of woordenboek in Python te maken in plaats van misschien een lus te
maken of toe te voegen aan een heleboel items aan lijsten.
Dus laat me je laten zien, in plaats van iets te doen zoals mijn lijst is gelijk aan een lege lijst, en vanaf
hier zal ik zoiets doen als vier tekens in Hallo.
Mijn lijst punt toevoegen.
Karakter.
Zodat ik eindelijk deze lijst kan maken, dus laten we zeggen mijn lijst en we zullen deze uitprinten.
Als ik klik, ren dan weg.
Ik heb een lijst gemaakt met de personages uit Hello.
Goed, maar.
Is er een snellere, schonere manier om dit te doen en ja, er is minder begrip in Python.
Nogmaals, het is vrij uniek.
Je ziet het niet in veel programmeertalen, maar mensen die Python gebruiken, zijn dol op deze functie, en
ik ook.
Dus hoe kunnen we dit doen met behulp van een lijstbegrip?
Het formaat dat we gaan volgen is als volgt.
We gaan Perram zeggen.
Voor.
Perram in iterabel.
Dus als ik Perram zeg, bedoel ik parameter, of in ons geval kan het een variabele zijn, dus we kunnen het noemen
wat we willen.
Dus laten we dit personage een naam geven zoals we hier deden en dan een personage zoals we hier deden.
En dan willen we een iterable in ons geval hallo zeggen.
Zodat als ik dit verwijder en ik op uitvoeren klik.
Ik krijg zomaar hetzelfde, dus na Creation Online drie, maak ik een lijst met tekens in
Hallo, ik doe hier een for-lus en ik maak de lijst.
Dus de manier waarop ik er graag over nadenk is, hey, maak een variabele
en dan gaan we een for-lus doen die zegt, hey, voor elke variabele in de iterable die aan de lijst is toegevoegd.
Oké, laten we dit uitbreiden, laten we zeggen dat ik iets anders wilde doen, laten we het ook
mijn lijst noemen, en ik wil, laten we zeggen, een snelle lijst maken met getallen variërend van nul tot honderd of nul tot
negenennegentig.
Hoe zou ik dit weer gaan doen?
Met behulp van een lijstbegrip, zeg ik nummer vier en wat is dan de iterabele die ik ga gebruiken?
Nou, ik ga een bereik gebruiken en zeg nul tot 100, zodat als ik klik hier uitvoeren.
Kijk eens aan, ik krijg een mooie lange lijst, behoorlijk gevuld met al deze nummers.
Hoe cool is dat?
OKE.
Maar hier is mijn uitdaging voor jou.
Wat als ik dit zou willen, maar alle getallen moeten met twee worden vermenigvuldigd.
Dus ik wil een lijst waarin dit gelijk is aan nul.
Dit is twee.
Dit is vier.
Dit is zes.
Dit is acht.
Dit is tien.
enzovoort enzovoort.
Hoe kan ik het doen?
Welnu, we kunnen dit zelfs uitbreiden, zodat mijn lijst drie deze keer dezelfde for-lus zal gebruiken die we eerder
hebben gezien.
Zoals dit, maar in plaats van alleen de variabele, is dit nu een uitdrukking van hoe we op elk karakter
willen reageren, net zoals we zagen in lambda-expressies.
Dus ik kan nu verdoofde tijden zeggen.
Voor.
Deze dingen.
Dus als ik nu mijn lijst drie doe.
Hé, check dat eens.
Dat is best aardig, niet?
Oké, laten we het nog uitdagender maken, laten we zeggen, mijl drie, en laten we het hier een beetje groter
maken.
Mijn lijst want ik wil het zo veranderen dat ik in mijn lijst nog steeds hier houd wat ik de nummers heb, maar ik wil alleen
de even nummers behouden.
In dit geval zijn ze allemaal gelijk omdat ze met twee zijn vermenigvuldigd, maar als we bijvoorbeeld doen tot
de macht van twee en laten we dit even uitspreken en op uitvoeren klikken.
We zien dat sommige cijfers dat niet zijn.
Toch wil ik deze cijfers behouden, maar alleen de even, hoe moet ik dat doen?
Welnu, in dit geval hebben we een nieuwe manier om deze uitdrukking te creëren, we zullen precies hetzelfde doen als wat we hier
hebben gedaan.
Dus ik ga dat maar kopiëren.
Maar aan het einde, onthoud dat we hier nu een uitdrukking hebben, iets dat we gaan doen om wat het item
in de iterable ook is te bewerkstelligen.
We gaan door de dingen heen en dan kunnen we eindelijk zeggen of we een if-voorwaarde kunnen doen.
Dus laten we zeggen in ons geval, ik zal zeggen als num.
Modulo twee is gelijk aan nul, alleen dan toegevoegd aan de lijst.
Dus als we klikken, rennen.
Nou, en zorg ervoor dat het minder is voor klikrun.
Kijk eens aan, dit zijn allemaal even getallen, dus laten we eens naar dit formaat kijken.
Onthouden?
Dit worden lijstbegrippen genoemd, het is een manier voor ons om snel lijsten te maken met Python in plaats van te
herhalen en toe te voegen of dingen die we eerder hebben gezien.
Het is dus een verkorte vorm voor ons om dit soort unieke dingen te doen.
De manier waarop we dit kunnen doen, is door hier een uitdrukking te hebben van wat we willen doen met
elk item dat we herhalen, we herhalen.
Met behulp van een for-lus door unhittable, geven we het een variabele waar we naar gaan handelen, en als
we dat willen, hebben we ook een optie om een voorwaarde toe te voegen en te zeggen, hey, alleen opgenomen in de lijst op basis van deze
voorwaarde , gebaseerd op een waar of onwaar.
Heel, heel cool nu, hoewel het begrijpen van lijsten erg leuk is omdat het maar simpele
oneliners zijn, kan het behoorlijk verwarrend worden.
Als je naar deze code kijkt, moet je echt bekend zijn met lijstbegrippen om echt te begrijpen wat er aan de
hand is.
Dus hoewel dit de code korter, misschien zelfs schoner maakt, neemt het de leesbaarheid een beetje weg.
Het is dus misschien beter om gewoon een beschrijvende functie te maken, zoals het genereren van een lijst met even getallen
of iets dergelijks.
Het is dus meer beschrijvend.
En een andere ontwikkelaar heeft misschien een beter idee van wat er aan de hand is.
Het is dus altijd een afweging.
Laten we een pauze nemen en in de volgende video praten over set- en woordenboekbegrippen.