Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende om Sorted | Højereordensfunktioner og Lambdas
Funktionelle Programmeringskoncepter i Python
Sektion 2. Kapitel 4
single

single

bookGrundlæggende om Sorted

Stryg for at vise menuen

Sortering af data er en almindelig operation, når man arbejder med lister i Python. Funktionen sorted er en indbygget højere-ordens funktion, der gør det muligt at sortere enhver iterabel og returnerer en ny sorteret liste, mens de oprindelige data forbliver uændrede. Du kan bruge sorted med eller uden brugerdefineret sorteringslogik. Som standard arrangerer sorted elementerne i stigende rækkefølge, men du kan styre sorteringsrækkefølgen og kriterierne ved hjælp af dens valgfrie parametre.

De vigtigste parametre for sorted er:

  • iterable: de data, du vil sortere;
  • key: en valgfri funktion, der bestemmer værdien, der skal sorteres efter for hvert element;
  • reverse: en boolesk værdi, der, hvis den sættes til True, sorterer dataene i faldende rækkefølge.

Antag, at du har en liste med tal og ønsker at sortere dem i stigende rækkefølge. Du kan blot kalde sorted(numbers). Hvis du vil sortere tallene i faldende rækkefølge, kan du angive reverse=True.

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

Du kan også bruge parameteren key til at sortere mere komplekse datastrukturer, såsom lister af tupler eller ordbøger, ved at angive en funktion, der udtrækker sammenligningsværdien fra hvert 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 give enhver funktion til key-parameteren, inklusive en lambda-funktion eller en tidligere defineret funktion. Dette gør sorted til en højere-ordens funktion, da den accepterer en anden funktion som argument. Sortering er ikke begrænset til tal eller strenge; du kan sortere komplekse objekter, så længe du angiver en passende key-funktion.

Note
Bemærk

Den oprindelige iterable ændres ikke af sorted, den returnerer altid en ny liste. Hvis du vil sortere en liste på stedet, skal du i stedet bruge metoden list.sort().

Opgave

Swipe to start coding

Sorter en liste af tupler efter det andet element i hver tuple ved hjælp af funktionen sorted og en navngivet funktion som key-parameter.

  • Du får en liste ved navn pairs, der indeholder tupler med to heltal.
  • Definér en funktion ved navn get_second_element, som tager en tuple og returnerer dens andet element.
  • Brug funktionen sorted, og angiv get_second_element som key-parameter for at sortere pairs efter det andet element i hver tuple.
  • Gem resultatet i en variabel ved navn sorted_pairs.
  • Husk at fjerne pass.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt