Cum să filtrați lista în Python în modul corect pentru a obține mai mult din datele dvs

În Python, una dintre cele mai populare moduri de a stoca date secvențiale sau ordonate este prin utilizarea listelor. O listă în Python este o structură de date ordonată, mutabilă, încorporată, care este utilizată pentru a stoca o colecție de date. Elementele stocate într-o listă sunt indexate începând de la zero, iar utilizatorii pot modifica conținutul unei liste după ce aceasta a fost creată.

Faptul că articolele dintr-o listă sunt indexate permite stocarea articolelor duplicate într-o listă. Listele din Python pot conține, de asemenea, elemente de diferite tipuri de date. Elementele dintr-o listă sunt separate prin virgule și incluse între paranteze drepte.

Iată exemple de liste în Python:

# 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']

Listele sunt o structură de date foarte versatilă și puteți efectua o mulțime de operațiuni asupra datelor stocate în liste. O operație comună și utilă efectuată pe liste este filtrarea datelor stocate în listă.

De ce este importantă filtrarea listelor

Filtrarea unei liste înseamnă extragerea unor subseturi specifice de date care îndeplinesc un anumit criteriu. De exemplu, ne-ar putea interesa doar numerele pare dintr-o listă care conține numerele de la 1 la 10. Pentru a extrage astfel de date din listă, tot ce trebuie să facem este să filtram lista pentru a obține numere care sunt exact divizibile cu două.

Filtrarea este deosebit de utilă în manipularea datelor și analiza datelor, deoarece permite eliminarea elementelor nedorite din liste, crearea de noi liste care conțin articole care îndeplinesc anumite criterii și extragerea datelor care îndeplinesc anumite condiții.

Unele aplicații din lumea reală ale listelor de filtrare includ:

  • Validarea datelor – Când lucrați cu o listă, este posibil să doriți să lucrați numai cu date care îndeplinesc un anumit criteriu. De exemplu, într-o listă de utilizatori, s-ar putea să fiți interesat de utilizatori cu nume și prenume. Filtrarea vă poate permite să verificați și să validați datele din listă înainte de a le procesa. În acest fel, evitați să lucrați cu date care nu corespund cerințelor dvs.
  • Curățarea datelor – Deoarece listele pot stoca o varietate de tipuri de date, nu este rar să descoperiți că listele conțin date nedorite de care nu sunteți interesat. De exemplu, într-o listă care conține nume, este posibil să nu fiți interesat de valorile numerice din lista. Prin filtrare, puteți elimina datele nedorite.
  • Analiza datelor – Filtrarea datelor este deosebit de utilă în analiza datelor, deoarece vă permite să vă concentrați pe anumite subseturi de date, ceea ce vă permite să identificați cu ușurință modelele și tendințele. De exemplu, într-o listă de studenți, puteți filtra studenții și studenții și puteți utiliza rezultatul în analiza datelor. Puteți chiar să filtrați în funcție de vârstă, locație și grad. Acest lucru vă permite să trageți concluzii mai utile din anumite subseturi de date dintr-o listă
  Cum să vă transformați computerul într-un receptor Chromecast

Filtrarea listelor este o funcție foarte utilă, deoarece vă oferă control asupra datelor stocate într-o listă, permițându-vă să lucrați numai cu datele care vă interesează.

Direcționarea anumitor subseturi de date stocate într-o listă este foarte utilă, deoarece eficientizează procesarea și analiza datelor, făcând procesele mai bune, mai rapide și mai precise.

Folosind funcția filter().

Funcția filter() este o funcție Python încorporată care poate fi utilizată pentru a itera printr-un iterabil, cum ar fi o listă, tupluri, set sau dicționar și pentru a extrage elemente din iterabil care satisfac o anumită condiție.

Un iterabil în Python este un obiect care poate fi parcurs în buclă prin elementele sale unul câte unul. Iterarea printr-un iterabil returnează elementele din iterabil pe rând.

Sintaxa pentru funcția de filtru este următoarea:

filter(function, iterable)

function – o functie Python care contine conditia de filtrare

iterabil – iterabilul care va fi filtrat. În acest caz, vom folosi o listă.

Funcția filter() preia funcția trecută și o aplică fiecărui element din iterabilul trecut, testând condiția de filtrare față de element. Dacă elementul îndeplinește condiția, adică returnează valoarea booleană adevărată, care va fi selectată de funcția filter(). În cazul în care nu îndeplinește condiția, articolul nu este selectat.

Funcția filter() returnează un iterabil cu elementele care au trecut condiția de filtrare. Puteți crea o listă nouă care să conțină elemente care au trecut condiția de filtrare folosind funcția list().

Pentru a vedea funcția filter() în acțiune, luați în considerare lista de mai jos, care este filtrată pentru a selecta numere care sunt mai mici de 50:

#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)

Codul de mai sus afișează următorul rezultat:

[15, 46, 24, 37]

Folosind o buclă for

În Python, o buclă for este o instrucțiune de flux de control utilizată pentru a itera peste structuri de date secvențiale, cum ar fi o listă, tupluri, șiruri de caractere și / și matrice. O buclă for execută în mod repetat un bloc de cod pentru fiecare articol dintr-o secvență.

  Nu obțineți Netflix în 4K? Iată cum să o remediați

Sintaxa generală pentru o buclă for este următoarea:

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

item – o variabilă care reprezintă elementul curent care este procesat într-o iterație a buclei

iterabil – secvența peste care iterează bucla for. În acest caz, o listă

Pentru a filtra o listă folosind o buclă for, va trebui să trecem condiția noastră de filtrare în secțiunea pentru blocul de cod care urmează să fie executat. În acest fel, fiecare item va fi evaluat pentru a vedea dacă îndeplinește o anumită condiție.

Când utilizați o buclă for pentru a filtra o listă, trebuie, de asemenea, să creați o listă goală în care veți adăuga valori care trec condiția dvs. de filtrare.

Pentru a vedea acest lucru în acțiune, să filtram o listă de numere pentru a obține numere mai mici de 50 folosind o buclă for:

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)

Codul de mai sus afișează următorul rezultat:

[15, 46, 24, 37]

Folosind o altă listă

Puteți filtra o listă folosind alta verificând dacă un element dintr-o listă pe care doriți să o filtrați apare într-o altă listă. De exemplu, luați în considerare următoarele două liste

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

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

În lista numită litere de mai sus, putem determina care articole din listă nu sunt vocale verificând dacă elementul apare în lista de vocale sau nu. Dacă un element nu apare în lista de vocale, atunci nu este o vocală.

În acest fel, putem obține toate caracterele din litere care nu sunt vocale. Pentru a face acest lucru, executați următorul cod:

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)

Codul de mai sus tipărește următorul rezultat, care conține caractere în litere care nu sunt vocale.

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

Utilizarea listei de înțelegere

În Python, înțelegerea listei oferă o sintaxă mai scurtă, mai concisă și mai curată pentru crearea unei liste noi dintr-o listă existentă. Înțelegerea listei are capacitatea de a reduce liniile multiple de cod folosite pentru a crea o nouă listă dintr-o altă listă folosind o buclă for într-o singură linie.

  8 instrumente remarcabile de urmărire a anunțurilor pentru marketeri

Acest lucru se datorează faptului că atunci când utilizați înțelegerea listelor, definiți și adăugați elemente la noua listă, toate într-o singură linie.

Sintaxa pentru înțelegerea listei este următoarea:

new_list = [expression for element in iterable if condition]

listă_nouă – o listă nouă care conține elemente adăugate prin înțelegerea listei

expresie – o operație care va fi aplicată fiecărui element al iterabilului

item – nume variabilă care reprezintă elementul activ în prezent în iterabil

iterabil – un iterabil din care vor fi selectate articole.

condiție if – o parte opțională în care o condiție poate fi adăugată la elementele de filtrare pentru a adăuga numai cele care satisfac o anumită condiție în noua listă care este creată.

Pentru a vedea înțelegerea listei în acțiune și cât de mult poate simplifica procesul de filtrare și de creare a unei liste noi, vom folosi lista de litere și vocale pentru a filtra elementele din lista de litere care nu sunt în lista de vocale. Pentru a face acest lucru, executați următorul cod:

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)

Rezultatul codului de mai sus este prezentat mai jos:

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

Ieșirea este similară cu exemplul anterior, care a folosit o buclă for pentru a filtra o listă folosind o altă listă. Cu toate acestea, folosește mai puține linii de cod pentru a obține același rezultat.

Concluzie

Când lucrați cu date în Python, o operație comună pe care sunteți obligat să o efectuați este filtrarea datelor dintr-un iterabil, cum ar fi o listă. Acesta este un pas foarte util în analiza și procesarea datelor, deoarece vă permite să lucrați numai cu date care sunt relevante pentru operațiunea sau procesarea în curs.

O structură de date secvențială foarte populară în Python este lista. În cazul în care vă treziți să lucrați cu o listă și trebuie să o filtrați, luați în considerare utilizarea oricăreia dintre metodele evidențiate în articol.

De asemenea, puteți citi despre cum să utilizați funcțiile lambda în Python cu exemple.