Liste-, sæt- og ordbogsforståelser i Python

Foto af Kara Eads på Unsplash

Forståelser i Python:

Forståelsen består af et enkelt udtryk efterfulgt af mindst én for-klausul og nul eller flere for– eller if-klausuler.

Der findes tre comprehensions i Python.

Typer af comprehensions i Python(Billedkilde: Forfatter)

Listeforståelser:

Listeforståelser giver en kortfattet måde at oprette lister på. Almindelige anvendelser er at lave nye lister, hvor hvert element er resultatet af nogle operationer, der er anvendt på hvert medlem af en anden sekvens eller iterabel, eller at oprette en undersekvens af de elementer, der opfylder en bestemt betingelse. – python docs

Syntaks:

Udtrykket kan være et vilkårligt udtryk, komplekse udtryk, tupler, nested functions eller en anden list comprehension.

Dette svarer til

for item in iterable:
if conditional:
expression

Returneringstype:

List

Anvendelse af listeforståelse:

En listeforståelse består af parenteser, der indeholder et udtryk efterfulgt af en for-klausul, derefter nul eller flere for– eller if-klausuler. Resultatet vil være en ny liste, der er resultatet af evalueringen af udtrykket i forbindelse med de for og if klausuler, der følger efter det.

Listeforståelse forklaret(Billedkilde: Forfatter)

Listeforståelse vs. for loop.

Med List Comprehension er det mere kortfattet og læsbart sammenlignet med for loop.

Finding square of numbers using List Comprehension vs for loop:

for loop vs List comprehension

List comprehension vs filter.

Returnerer en iterator fra de elementer i iterable, for hvilke funktionen returnerer sandt. iterable kan enten være en sekvens, en container, der understøtter iteration, eller en iterator

Finding Even Numbers Using List Comprehension vs filter():

List Comprehension vs filter()

3.List Comprehension vs map.

map:

Returnerer en iterator, der anvender en funktion på hvert element i iterable, hvilket giver resultaterne.

Finding square of numbers using List Comprehension vs map():

List Comprehension vs map()

Nested loops in List Comprehension.

List Comprehension kan indeholde en eller flere for-klausuler.

Eksempel 1: En liste med to “for”-klausuler kan udglatte en liste ved hjælp af List Comprehension:

Udglatte en liste ved hjælp af List Comprehension

5.Flere hvis-bestemmelser i List Comprehension.

List Comprehension kan indeholde nul eller flere hvis-bestemmelser.

Eksempel: En liste kan indeholde nul eller flere hvis-bestemmelser.

Eksempel: En liste med to “for”-klausuler kan udglatte en liste ved hjælp af List Comprehension:

Listeforståelse med to if-klausuler

Udtrykket kan være en tupel i listeforståelse.

Vi kan nævne udtrykket som en tupel i en listeforståelse. Det skal skrives inden for parenteser. Ellers vil det give anledning til Fejl. Resultatet vil være en liste af tupler.

Eksempel 1: Oprettelse af en liste af tupler ved hjælp af List Comprehension med to ‘for’-klausuler:

Liste af tupler

Hvis udtrykket er en tupel, og hvis det ikke er omsluttet af parenteser, vil det give anledning til SyntaxError.

Udtrykket skal være omsluttet af parenteser, hvis det er en tupel.

Eksempel 2: Brug af zip()-funktionen i List Comprehension:

zip() i List Comprehension

List Comprehension kan bruges til at kalde en metode på hvert element.

Eksempel 1: Kald af strip()-metoden på hvert element i listen. Den bruges til at fjerne de hvide mellemrum.

Kaldelse af strip()-metoden på hvert element

Eksempel 2: Kaldelse af upper()-metoden på hvert element i listen.

Kaldelse af upper()-metoden på hvert element

Listforståelse kan indeholde komplekse udtryk og indlejrede funktioner.

Eksempel 1: I nedenstående eksempel bruger vi i udtrykket strip-metoden og int-funktionen.

Eksempel 2: I nedenstående eksempel bruger vi i udtrykket abs() og str()-funktionen.

Nested List Comprehension.

Udtrykket i en list comprehension kan også indeholde en anden list comprehension.

Eksempel: Det første listeforståelse, der er angivet som udtryk, returnerer en liste med lige tal fra 0 til 10. En indlejret listeforståelse vil returnere dette udtryk (liste over lige tal fra 0 til 10) tre gange(range(3)).

Inlejret listeforståelse

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.