A lista szűrése a Pythonban a megfelelő módon, hogy többet hozzon ki adataiból

A Pythonban a szekvenciális vagy rendezett adatok tárolásának egyik legnépszerűbb módja a listák használata. A Python-lista egy rendezett, változtatható, beépített adatstruktúra, amely adatgyűjtemény tárolására szolgál. A listában tárolt elemek nullától kezdve indexelve vannak, és a felhasználók a lista létrehozása után módosíthatják a tartalmát.

Az a tény, hogy a lista elemei indexelve vannak, lehetővé teszi az ismétlődő elemek tárolását a listában. A Python listái különböző adattípusú elemeket is tartalmazhatnak. A lista elemei vesszővel vannak elválasztva és szögletes zárójelek között vannak.

Példák a Python listáira:

# A list containing one data type - String
colors = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']

# A list containing multiple data types
movies = ['Transformers', 2012, 'Avengers', 300]

# A list with duplicate values
users = ['John', 'Mary', 'Elizabeth', 'John']

A listák egy nagyon sokoldalú adatstruktúra, és sok műveletet végezhet a listákban tárolt adatokkal. A listákon végzett egyik gyakori és hasznos művelet a listában tárolt adatok szűrése.

Miért fontos a listák szűrése?

A lista szűrése az adatok meghatározott részhalmazainak kinyerését jelenti, amelyek megfelelnek egy adott kritériumnak. Például előfordulhat, hogy csak a páros számok érdekelnek minket egy 1-től 10-ig terjedő számokat tartalmazó listában. Ahhoz, hogy ilyen adatokat kinyerjünk a listából, csak szűrnünk kell a listát, hogy kettővel pontosan osztható számokat kapjunk.

A szűrés különösen hasznos az adatkezelésben és adatelemzésben, mivel lehetővé teszi a nem kívánt elemek eltávolítását a listákból, új listák létrehozását, amelyek adott feltételeknek megfelelő elemeket tartalmaznak, és bizonyos feltételeknek megfelelő adatok kinyerését.

A szűrőlisták néhány valós alkalmazása a következőket tartalmazza:

  • Adatellenőrzés – Ha listával dolgozik, érdemes lehet csak olyan adatokkal dolgozni, amelyek megfelelnek egy adott kritériumnak. Például a felhasználók listájában a kereszt- és vezetéknévvel rendelkező felhasználók is érdeklődhetnek. A szűrés lehetővé teszi a listában szereplő adatok ellenőrzését és érvényesítését azok feldolgozása előtt. Így elkerülheti, hogy olyan adatokkal dolgozzon, amelyek nem felelnek meg a követelményeknek.
  • Adattisztítás – Mivel a listák sokféle adattípust tárolhatnak, nem ritka, hogy a listák olyan nem kívánt adatokat tartalmaznak, amelyek nem érdeklik Önt. Például egy neveket tartalmazó listában előfordulhat, hogy nem érdeklik a számértékek a listát. A szűréssel eltávolíthatja a nem kívánt adatokat.
  • Adatelemzés – Az adatok szűrése különösen hasznos az adatelemzésben, mivel lehetővé teszi, hogy az adatok meghatározott részhalmazaira összpontosítson, ami lehetővé teszi a minták és trendek egyszerű azonosítását. Például a tanulók listájában kiszűrheti a férfi és női hallgatókat, és felhasználhatja az eredményt az adatelemzésben. Akár kor, hely és fokozat szerint is szűrhet. Ez lehetővé teszi, hogy hasznosabb következtetéseket vonjon le egy listában szereplő adatok meghatározott részhalmazaiból
  A megbízhatatlan kapcsolat javítása a CSGO-ban

A listák szűrése nagyon hasznos funkció, mivel lehetővé teszi a listában tárolt adatok ellenőrzését, így csak az Önt érdeklő adatokkal dolgozhat.

A listában tárolt adatok meghatározott részhalmazainak megcélzása nagyon hasznos, mivel leegyszerűsíti az adatfeldolgozást és az adatelemzést, így a folyamatok jobbak, gyorsabbak és pontosabbak.

Filter() függvény használata

A filter() függvény egy beépített Python-függvény, amellyel iterálhatunk egy iterálható elemet, például listát, sorokat, halmazt vagy szótárat, és kivonhatjuk az iterable elemeit, amelyek megfelelnek egy adott feltételnek.

Az iterable a Pythonban egy olyan objektum, amely egyenként hurkolható elemein. Az iterálható iteráció egyenként adja vissza az iterálható elemeket.

A szűrő funkció szintaxisa a következő:

filter(function, iterable)

függvény – egy Python-függvény, amely tartalmazza a szűrési feltételt

iterálható – az iterálható, amelyet szűrni fognak. Ebben az esetben listát fogunk használni.

A filter() függvény veszi az átadott függvényt, és alkalmazza azt az átadott iteráció minden elemére, tesztelve a szűrési feltételt az elemhez képest. Ha az elem teljesíti a feltételt, vagyis a true logikai értéket adja vissza, amit a filter() függvény választ ki. Ha nem felel meg a feltételnek, a tétel nem kerül kiválasztásra.

A filter() függvény egy iterálható elemet ad vissza olyan elemekkel, amelyek megfeleltek a szűrési feltételnek. A list() függvény segítségével létrehozhat egy új listát, amely tartalmazza a szűrési feltételnek megfelelő elemeket.

A filter() függvény működésének megtekintéséhez tekintse meg az alábbi listát, amely az 50-nél kisebb számok kiválasztásához szűrés alatt áll:

#A list of numbers
numbers = [79, 15, 92, 53, 46, 24, 81, 77, 37, 61]

# function containing the filtering condition
def is_even(num):
   if num < 50:
      return True
   else:
      return False

# the function list() is used to create a list from the iterable
# returned by the filter() function
filtered_numbers = list(filter(is_even, numbers))
print(filtered_numbers)

A fenti kód a következő eredményt nyomtatja ki:

[15, 46, 24, 37]

For ciklus használata

A Pythonban a for ciklus egy vezérlőfolyamat-utasítás, amely szekvenciális adatstruktúrákon, például listákon, sorokon, karakterláncokon és tömbökön való iterációra szolgál. A for ciklus ismételten végrehajt egy kódblokkot a sorozat minden eleméhez.

  A VLC Converter nincs hanghiba javítása

A for ciklus általános szintaxisa a következő:

for item in iterable:
    # Block of code to be executed for each item in the iterabele

item – a ciklus iterációjában feldolgozott aktuális elemet reprezentáló változó

iterálható – a sorozat, amelyen keresztül a for ciklus iterál. Ebben az esetben egy lista

A lista for ciklussal történő szűréséhez át kell adnunk a szűrési feltételünket a kódblokk végrehajtásához szükséges szakaszban. Ily módon minden egyes elem kiértékelésre kerül, hogy kiderüljön, megfelel-e egy adott feltételnek.

Ha for ciklust használ egy lista szűrésére, akkor létre kell hoznia egy üres listát is, amelyhez olyan értékeket kell hozzáfűznie, amelyek megfelelnek a szűrési feltételnek.

Ahhoz, hogy ezt működés közben lássuk, szűrjünk egy számlistát, hogy 50-nél kisebb számokat kapjunk for ciklus segítségével:

numbers = [79, 15, 92, 53, 46, 24, 81, 77, 37, 61]

filtered_numbers = []

for num in numbers:
    if num < 50:
        # append() used to add a number that passes the condition
        # into filtered_numbers.
        filtered_numbers.append(num)

print(filtered_numbers)

A fenti kód a következő eredményt nyomtatja ki:

[15, 46, 24, 37]

Egy másik lista használata

Szűrhet egy listát egy másikkal, ha ellenőrzi, hogy a szűrni kívánt lista egyik eleme megjelenik-e egy másik listában. Vegyük például a következő két listát

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']

vowels = ['a', 'e', 'i', 'o', 'u']

A fenti betűk listában úgy tudjuk meghatározni, hogy a lista mely elemei nem magánhangzók, ha ellenőrizzük, hogy az elem megjelenik-e a magánhangzók listájában vagy sem. Ha egy elem nem jelenik meg a magánhangzók listájában, akkor az nem magánhangzó.

Így minden olyan karaktert megkaphatunk olyan betűkben, amelyek nem magánhangzók. Ehhez hajtsa végre a következő kódot:

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']
vowels = ['a', 'e', 'i', 'o', 'u']

not_vowel = []

for letter in letters:
    if letter not in vowels:
        not_vowel.append(letter)
print(not_vowel)

A fenti kód a következő kimenetet írja ki, amely olyan betűket tartalmaz, amelyek nem magánhangzók.

['h', 'q', 'd', 's', 'x', 'g', 'j', 'k', 'f', 'c', 'b', 'n']

A listaértés használata

A Pythonban a listaértelmezés rövidebb, tömörebb és tisztább szintaxist kínál új lista létrehozásához egy meglévő listából. A listaértés képes egyetlen sorba csökkenteni a több sor kódot, amelyet egy másik listából új lista létrehozásához használnak a for ciklus használatával.

  Hogyan kell játszani a Spelunky-t Linuxon

Ennek az az oka, hogy a listaértelmezés használatakor egy sorban definiál és ad hozzá elemeket az új listához.

A lista megértésének szintaxisa a következő:

new_list = [expression for element in iterable if condition]

new_list – a listaértelmezés által hozzáadott elemeket tartalmazó új lista

kifejezés – egy művelet, amely az iterálható elem minden elemére vonatkozik

item – az iterable aktuálisan aktív elemét képviselő változónév

iterálható – iterálható, amelyből az elemek kiválasztásra kerülnek.

if feltétel – egy opcionális rész, ahol egy feltétel hozzáadható az elemek szűréséhez, hogy csak az adott feltételnek megfelelőek kerüljenek a létrehozandó új listába.

Ha látni szeretné, hogyan működik a lista, és mennyire leegyszerűsítheti a szűrés és az új lista létrehozásának folyamatát, akkor a betűk és magánhangzók listája segítségével kiszűrjük azokat az elemeket a betűlistában, amelyek nem szerepelnek a magánhangzók listájában. Ehhez hajtsa végre a következő kódot:

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']
vowels = ['a', 'e', 'i', 'o', 'u']

# list comprehension
not_vowel = [letter for letter in letters if letter not in vowels]
print(not_vowel)

A fenti kód kimenete az alábbiakban látható:

['h', 'q', 'd', 's', 'x', 'g', 'j', 'k', 'f', 'c', 'b', 'n']

A kimenet hasonló az előző példához, amely egy for ciklust használt egy lista szűrésére egy másik lista alapján. Azonban kevesebb kódsort használ ugyanazon eredmény eléréséhez.

Következtetés

Amikor Pythonban dolgozik adatokkal, egy gyakori művelet, amelyet kötelező végrehajtania, az adatok szűrése egy iterálható elemből, például egy listából. Ez egy nagyon hasznos lépés az adatelemzésben és adatfeldolgozásban, mivel lehetővé teszi, hogy csak az elvégzett művelet vagy feldolgozás szempontjából releváns adatokkal dolgozzon.

Egy nagyon népszerű szekvenciális adatstruktúra a Pythonban a lista. Abban az esetben, ha úgy találja, hogy egy listával dolgozik, és szűrnie kell azt, fontolja meg a cikkben kiemelt módszerek bármelyikét.

Példákkal is olvashat a lambda függvények használatáról a Pythonban.