A listaértés használata a Pythonban

A listaértés használata a Pythonban

A lista megértésének időben történő használata a Pythonban megkönnyíti az iteratív listaműveleteket. Amellett, hogy egyetlen sor, olvashatóbb és hatékonyabban hajtható végre.





Előfordulhat azonban, hogy feldobja magát, ha nem tudja, hogyan kell használni. Még frusztrálóbb is lehet, ha nem tudja, hol alkalmazza a kódban. Itt néhány valós példával bemutatjuk, hogyan használhatja a listaértést a Pythonban.





Mi a listaértés a Pythonban és hogyan működik?

Az elemek listájának létrehozása Python segítségével egyszerű. A feladat azonban kissé unalmassá válhat, ha matematikai vagy karakterlánc -műveletekből kell létrehoznia az értékek vagy elemek listáját. Ekkor jól jöhet a listaértés használata.





A listaértés használatának előnye, hogy több műveletet is végrehajthat egyetlen listában.

macbook pro 2015 akkumulátorcsere költsége

Ezzel szemben új elemeket hoz létre, és hozzáadja azokat az üres listához, amelyet automatikusan deklarál. Tehát ahelyett, hogy manuálisan készítenénk üres listát, és a számára ciklus, a Python listaértése lehetővé teszi, hogy ezt automatikusan megtegye, anélkül, hogy az új lista megjelenítésével törődne.



A „listaértés” kifejezés abból a tényből származik, hogy minden művelet egy Python listában van, amely egy megnevezett változóhoz van rendelve. Amint korábban említettük, lehetővé teszi bizonyos műveletek végrehajtását egyetlen kódsorban. Ezután hozzáadja a kimenetet egy új listához.

Végső soron a listaértés kimenetét más célokra is felhasználhatja. Ez azért van, mert a kifejezéseket külön változókba rakja. Tehát később hivatkozhat rájuk.





Például lehet egy webhely kaparása a BeautifulSoup segítségével . Tegyük fel, hogy az összes termék nevét és árait a webhelyről kívánja megszerezni.

Ezt követően úgy dönt, hogy a beolvasott adatokat CSV vagy Excel fájlba helyezi. Az ideális gyakorlat az, hogy az összes elem nevét és árát le kell kaparni, és mindkettőt külön oszlopokba kell helyezni. A lista -megértés használata azonban ebben az esetben biztosítja, hogy a lekaparott adatok dedikált változókban legyenek. Ezt követően az ilyen változókat később Python DataFrame -re konvertálhatja.





Nézze meg az alábbi példát:

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

Miután megkapta a hurkolt változókat, a Python Pandas használatával külön oszlopokba helyezheti őket egy DataFrame -ben.

Listaértés létrehozása és használata Pythonban

Az számára A ciklus elengedhetetlen iterátor a lista megértésében. Általában a Pythonban a lista megértése ezt a formátumot használja:

ComprehensionVariable = [expression for items in list]

Nyomtatás MegértésVáltozó a fenti kód eredményét listaként adja ki.

Ügyeljen azonban arra, hogy ne tévessze össze a lista megértését a nyitottal számára hurok.

Például tegyük használjon nyitott hurkot hogy megkapja a listát a három többszöröséről 1 és 30 között:

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

A kettő összehasonlításához tegyük ugyanezt a listaértés segítségével:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Listaértést használhat feltételes állításokkal is. Az alábbi példakód minden páratlan számot kinyomtat 1 és 10 között:

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

Most írjuk át a fenti kódot egy open használatával számára hurok:

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

Összefüggő: Lista hozzáfűzése Pythonban

A lista megértése beágyazott utasításokat is elfogad:

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

Ez is beágyazott számára hurok:

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

Sima beágyazást is végezhet számára ciklus a lista megértésében:

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

A karakterláncokat a Python listaértéssel is manipulálhatja. Nézzük az alábbi szavak ellenértését:

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

A listaértés olyan funkciót is elfogadhat, amely egy adott műveletet hajt végre. Helyezzünk be egy szorzófüggvényt, amely páros számokat kap a lista megértésében, hogy lássa, hogyan működik ez:

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]

Továbbra is írhatja a fenti kódot egyetlen függvényben megértés használata nélkül. A lista megértése azonban hasznos, ha több iterációt kell végrehajtania, és mindegyiket külön változókba kell helyeznie.

Például elvégezhet egy másik műveletet n és rendelkezzen hozzá külön változóval. Módosítsuk a fenti megértést, hogy páratlan számokat állítsunk elő páratlanokból:

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

Szótár és halmazértelmezések

A lista megértésén kívül a Python szótárt és beállított szövegértési funkciót is kínál.

Tekintse meg az alábbi példaszótár -megértést, hogy lássa, hogyan működik:

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}

A fenti kód megismétli az 1 és 9 közötti számok listáját, és kulcsokká teszi őket. Ezután azt mondja a Pythonnak, hogy szorozza meg minden kulcsot kettővel. Végül a művelet eredményeit a kapott tömb minden kulcsának megfelelő értékeiként mutatja be.

Összefüggő: Hogyan működnek a tömbök és listák a Pythonban

A halmazértés kissé hasonlít a lista -megértéshez. Íme egy példa a halmazértésre:

alexa, most nehézségeim vannak a megértéssel
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

A listaértéssel ellentétben azonban a halmazmegértés eltávolítja az ismétlődéseket:

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}

Kipróbálhatja a fenti kódot egy listaértés segítségével, hogy lássa, miben különböznek egymástól.

Használhatja a listaértést minden alkalommal?

Megnéztük a listák megértésének különböző példáit, és azt, hogy hol használhatod őket. Azonban, mint bármely más Python-módszer, a lista megértésének használati esete a megoldani kívánt problémától függ. Ezért csak akkor használja, ha ideális a megoldani kívánt problémához.

A lista megértésének egyik célja a kód egyszerűsítése és olvashatóbbá tétele. Ezért ügyeljen arra, hogy kerülje a bonyolultságot, amikor ezzel foglalkozik. Például egy hosszú Python -szövegértés bonyolulttá válhat az olvasáshoz. Ez legyőzi célját.

Részvény Részvény Csipog Email Hogyan kell használni a Python lista megértéseit (és mikor ne használja őket)

Itt mindent megtudhat a Python ezen csodálatos funkciójának használatáról, amely egyik napról a másikra növeli a termelékenységet és a kód olvashatóságát.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Piton
A szerzőről Idisou Omisola(94 cikk megjelent)

Idowu szenvedélyes minden intelligens technológia és termelékenység iránt. Szabadidejében kódolással játszik, és ha unatkozik, sakktáblára vált, de szeret időnként elszakadni a rutintól. Szenvedélye, hogy megmutassa az embereknek a modern technológia körüljárását, motiválja őt, hogy írjon többet.

Továbbiak Idowu Omisola -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide