Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Grunderna i Sorted | Högre ordningens funktioner och lambdas
Funktionella Programmeringskoncept i Python
Avsnitt 2. Kapitel 4
single

single

bookGrunderna i Sorted

Svep för att visa menyn

Sortering av data är en vanlig operation när man arbetar med listor i Python. Funktionen sorted är en inbyggd högre ordningens funktion som låter dig sortera valfri iterable och returnerar en ny sorterad lista, medan den ursprungliga datan förblir oförändrad. Du kan använda sorted med eller utan egen sorteringslogik. Som standard ordnar sorted elementen i stigande ordning, men du kan styra sorteringsordningen och kriterierna med dess valfria parametrar.

De viktigaste parametrarna för sorted är:

  • iterable: datan du vill sortera;
  • key: en valfri funktion som bestämmer vilket värde som ska användas för sortering av varje element;
  • reverse: ett booleskt värde som, om det är satt till True, sorterar datan i fallande ordning.

Anta att du har en lista med siffror och vill sortera dem i stigande ordning. Du kan helt enkelt anropa sorted(numbers). Om du vill sortera siffrorna i fallande ordning kan du ange reverse=True.

12345
numbers = [9, 5, 2, 1] # Sorting in reverse order sorted_desc = sorted(numbers, reverse=True) print(sorted_desc)
copy

Du kan också använda parametern key för att sortera mer komplexa datastrukturer, såsom listor av tupler eller ordböcker, genom att ange en funktion som extraherar jämförelsevärdet från varje element.

12345
words = ["apple", "kiwi", "banana"] # Sorting by the length of each string sorted_words = sorted(words, key=len) print(sorted_words)
copy

Du kan skicka vilken funktion som helst till parametern key, inklusive en lambda-funktion eller en tidigare definierad funktion. Detta gör sorted till en högre ordningens funktion, eftersom den accepterar en annan funktion som argument. Sortering är inte begränsad till tal eller strängar; du kan sortera komplexa objekt så länge du tillhandahåller en lämplig key-funktion.

Note
Notering

Den ursprungliga iterable ändras inte av sorted, den returnerar alltid en ny lista. Om du vill sortera en lista på plats, använd istället metoden list.sort().

Uppgift

Svep för att börja koda

Sortera en lista med tupler efter det andra elementet i varje tuppel med hjälp av funktionen sorted och en namngiven funktion som key-parameter.

  • Du har en lista som heter pairs som innehåller tupler med två heltal.
  • Definiera en funktion som heter get_second_element som tar en tuppel och returnerar dess andra värde.
  • Använd funktionen sorted och skicka in get_second_element som key-parameter för att sortera pairs efter det andra värdet i varje tuppel.
  • Spara resultatet i en variabel som heter sorted_pairs.
  • Kom ihåg att ta bort pass.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt