Introduktion till Listförståelser Python

Förståelser ger ett kort och enkelt sätt att konstruera nya sekvenser med redan definierade sekvenser i Python. Dessa sekvenser kan vara listor, uppsättningar, ordböcker etc. Listförståelse är en av de värdefulla funktionerna i Python. I ett nötskal erbjuder Listförståelser ett sätt att skapa nya listor baserade på befintliga listor. Med andra ord, Listförståelser är ett enkelt sätt att skapa en lista baserad på vissa iterable. Här är en iterable allt som kan användas för att slinga över. Listförståelser gör det möjligt att använda en alternativ syntax för att skapa listor och alla andra sekventiella datatyper i python. Vi kommer att titta på hur dessa är användbara senare. Det finns tre komponenter i Listförståelse, dessa är:

  • Utgångsuttryck: Det här är valfritt och kan ignoreras.
  • Iterable.
  • En variabel som representerar medlemmar av iterable, den kallas ofta Iterator Variable.

Syntax och exempel:

I python kan vi skapa listförståelser med följande syntax:

list_variable = (x for x in iterable)

Som du kan se i Listförståelser tilldelas en lista till en variabel. Låt oss ta en titt på ett exempel, först kan vi överväga en metod för att hitta kvadratet med ett nummer med hjälp av en slinga:

Koda:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Produktion:

Låt oss nu överväga att göra detsamma, men använda Listkomprimeringar istället för en slinga:

Koda:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Produktion:

Här kan du se att fyrkantiga parenteser "()" används för att beteckna att utgången av uttrycket inuti dem är en lista.

Lista förståelser och Lambdafunktioner

Du bör komma ihåg att listförståelse inte är det enda sättet att skapa listor, Python har många inbyggda funktioner och lambda-funktioner som kan användas, till exempel:

Koda:

letters = list(map(lambda x: x, 'human'))
print(letters)

Produktion:

Även om detta fungerar i många fall är Listförståelser bättre på läsbarhet och lättare att förstå av någon som inte är programmeraren av koden.

Lägga till konditioner i listförståelser

Du är fri att använda alla villkor som behövs i en listaförståelse för att ändra den befintliga listan. Låt oss ta en titt på ett exempel som använder villkor:

Koda:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Produktion:

Här är ett annat exempel:

Koda:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Produktion:

Använda kapslade slingor i listförståelser

Vid behov kan vi använda nestade slingor i listförståelser, låt oss ta en titt på hur vi kan använda kapslade slingor på detta sätt genom att hitta transponering av en matris:

Koda:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Produktion:

Exempel på Listförståelser Python

Nedan är exemplen på Listförståelser Python:

Exempel 1 - Ta bort vokaler från en given mening

Koda:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Produktion:

Exempel 2 - Kartlägga namn på länder med sina huvudstäder

Koda:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Produktion:

Fördelar med listförståelser Python

Man kan tänka om Loops kan användas för att göra nästan allt listförståelser gör, varför använda dem i första hand? Tja, svaret är i hastighet och den tid det tar att få uppgiften klar och hur mycket minne som behövs. När en listförståelse görs reducerar vi redan tre kodrader till en och när den är klar är koden mycket snabbare som när man står inför en listaförståelse, allokerar python minnet för listan först och lägger sedan till element i den. det är utan tvekan ett mer elegant och sofistikerat sätt att skapa listor som är baserade på befintliga listor.

Slutsats

Nu när vi har haft lite erfarenhet av listförståelser är det lätt att förstå hur dessa gör att vi kan förvandla en lista till en ny lista. Dessa har en enkel syntax som begränsar mängden arbete som krävs för att skapa en lista. Med tanke på syntaxen och strukturen i listförståelser är i princip som en set-builder notation, dessa blir andra naturen för programmerare snabbt och ser till att när koden har överlämnats till någon annan person att underhålla och utöka, kommer det att vara lätt att förstå och arbeta med.

Rekommenderad artikel

Detta är en guide till Listförståelser Python. Här diskuterar vi listförståelser och lambda-funktioner tillsammans med kodimplementering och output. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Destruktor i Python med fördelar
  2. Gör medan Loop i Python med flödesschema
  3. Stränguppsättning i Python med metoder
  4. Vad är AWS Lambda-lager?
  5. PL / SQL-datatyper
  6. String Array i JavaScript
  7. Olika typer av SQL-data med exempel
  8. Komplett guide till Array of String

Kategori: