Comprehensiuni de listă, set, dicționar în Python

Fotografie de Kara Eads pe Unsplash

Comprehensiuni în Python:

Comprehensiunea este formată dintr-o singură expresie urmată de cel puțin o clauză for și zero sau mai multe clauze for sau if.

Există trei comprehensiuni în Python.

Tipuri de comprehensiuni în Python(Sursa imagine: Autor)

Comprehensiuni de liste:

Comprehensiunile de liste oferă o modalitate concisă de a crea liste. Aplicațiile comune sunt de a crea noi liste în care fiecare element este rezultatul unor operații aplicate fiecărui membru al unei alte secvențe sau iterabile sau de a crea o subsecvență a acelor elemente care satisfac o anumită condiție. – python docs

Syntaxă:

Expresia poate fi orice expresie arbitrară, expresii complexe, tuple, funcții imbricate sau o altă înțelegere de listă.

Acest lucru este echivalent cu

for item in iterable:
if conditional:
expression

Tip de retur:

List

Utilizarea înțelegerii de listă:

O înțelegere de listă constă din paranteze care conțin o expresie urmată de o clauză for, apoi zero sau mai multe clauze for sau if. Rezultatul va fi o nouă listă rezultată din evaluarea expresiei în contextul clauzelor for și if care o urmează.

Comprehensiunea de listă explicată(Sursa imagine: Autor)

Comprehensiunea de listă vs bucla for.

Utilizând List Comprehension, este mai concis și mai ușor de citit în comparație cu for loop.

Căutarea pătratului numerelor folosind List Comprehension vs for loop:

for loop vs List comprehension

List comprehension vs filter.

Întoarce un iterator din acele elemente ale iterabilului pentru care funcția returnează true. iterabilul poate fi fie o secvență, fie un container care suportă iterația, fie un iterator

Căutarea numerelor pare folosind înțelegerea listei vs filter():

Înțelegerea listei vs filter()

3.Înțelegerea listei vs map.

map:

Întoarce un iterator care aplică o funcție la fiecare element al iterabilului, producând rezultatele.

Căutarea pătratului numerelor folosind List Comprehensiune vs map():

List Comprehensiune vs map()

Bucle imbricate în List Comprehensiune.

List Comprehensiune poate conține una sau mai multe clauze for.

Exemplu 1: Aplatizarea unei liste folosind List Comprehensiune cu două clauze ‘for’:

Aflatarea unei liste folosind List Comprehensiune

5.Condiție if multiplă în List Comprehensiune.

List Comprehensiune poate conține zero sau mai multe clauze if.

Exemplu: Găsirea numerelor care sunt divizibile cu 2 și 3.

Comprehensiunea de listă folosind două clauze if

Expresia poate fi un tuplu în Comprehensiunea de listă.

Potem menționa expresia ca un tuplu într-o înțelegere de listă. Ea trebuie scrisă între paranteze. În caz contrar, se va genera o eroare. Rezultatul va fi o listă de tupluri.

Exemplu 1: Crearea unei liste de tupluri folosind comprehensiunea de liste cu două clauze ‘for’:

Listă de tupluri

Dacă expresia este un tupluplu și dacă nu este cuprinsă între paranteze, se va ridica SyntaxError.

Expresia trebuie să fie între paranteze dacă este un tupluplu.

Exemplu 2:Utilizarea funcției zip() în înțelegerea listei:

zip() în înțelegerea listei

Înțelegerea listei poate fi utilizată pentru a apela o metodă pe fiecare element.

Exemplu 1: Apelarea metodei strip() pe fiecare element din listă. Se utilizează pentru a elimina spațiile albe.

apelarea metodei strip() pe fiecare element

Exemplul 2: Apelarea metodei upper() pe fiecare element din listă.

apelarea metodei upper() pe fiecare element

Comprehensiunea de listă poate conține expresii complexe și funcții imbricate.

Exemplul 1: În exemplul de mai jos, în expresie folosim metoda strip și funcția int.

Exemplul 2: În exemplul de mai jos, în expresie, folosim funcțiile abs() și str().

Comprehensiunea de listă imbricate.

Expresia dintr-o înțelegere de listă poate include și o altă înțelegere de listă.

Exemplu: Prima înțelegere de listă dată ca expresie va returna o listă de numere pare de la 0 la 10. Înțelegerea listei imbricate va returna acea expresie (listă de numere pare de la 0 la 10) de trei ori(range(3)).

Înțelegerea listei imbricate

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.