sorted() og key-funktionen
Sortér tal, strenge og tupler
sorted() og key-funktionen er en gratis Forberedelse til kodeinterviews-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Forberedelse til kodeinterviews, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Forberedelse til kodeinterviews-kurset indeholder 4 lektioner i alt.
Sortering vinder konkurrencer
Så mange konkurrenceopgaver bliver lette, når dataene står i rækkefølge. Dit første værktøj er sorted(), som returnerer en ny sorteret liste. 🏆
sorted() returnerer en kopi
Et kald til sorted(nums) lader den oprindelige liste være urørt og giver dig en ny sorteret liste. Det er praktisk, når du stadig skal bruge inputtet senere.
nums = [3, 1, 2]
print(sorted(nums)) # [1, 2, 3]
print(nums) # [3, 1, 2]list.sort() sorterer på stedet
Når du ikke har brug for den oprindelige rækkefølge, sorterer list.sort() på stedet og returnerer None. Det sparer hukommelse i store arrays.
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]Standardrækkefølgen er stigende
Som standard sorterer Python fra mindst til størst. Tal går fra lavt til højt, og tekststrenge sorteres i ordbogsrækkefølge, tegn for tegn.
print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']Vend rækkefølgen med reverse
Angiv reverse=True for at sortere fra størst til mindst. Det er perfekt, når et grådigt trin skal bruge de største elementer først.
print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]Mød funktionen key
Argumentet key fortæller sorteringen, hvordan hvert element skal rangeres. Python kalder key på hvert element og sorterer efter de returnerede værdier.
words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']key med en lambda
En lille lambda lader dig sortere efter et hvilket som helst udtryk direkte i kaldet. Her sorterer vi tal efter, hvor langt de ligger fra nul.
vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]Sortér objekter efter et felt
Med tupler eller poster skal du lade key pege på det relevante felt. Resten af elementet følger automatisk med.
people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]Sorteringen er stabil
Python-sortering er stabil: Elementer med ens nøgler beholder deres indbyrdes rækkefølge. Det lader dig lagdele sorteringer for sikkert at afgøre ligheder.
key er bedre end manuel sammenligning
En key beregnes én gang pr. element, så den forbliver hurtig på store input. Brug den i stedet for selv at bytte elementer.
Sortering koster O(n log n)
Python sorterer på O(n log n)-tid. For n op til et par hundrede tusinde passer det uden problemer inden for en grænse på ét sekund.
Hurtigt tjek
Du skal have listen sorteret, men den oprindelige skal forblive uændret.
Opsummering
Du kan ordne data med sorted() eller sortere på stedet, vende med reverse og rangere hvad som helst med en key. Stabil sortering holder styr på ligheder. 🎉
Lær Forberedelse til kodeinterviews med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 90
- Lektioner
- 360
Ofte stillede spørgsmål
Er lektionen “sorted() og key-funktionen” gratis?
Ja — hele teksten til “sorted() og key-funktionen” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Forberedelse til kodeinterviews-kurset, skal du opgradere til CoddyKit PRO. Forberedelse til kodeinterviews-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “sorted() og key-funktionen”?
Sortér tal, strenge og tupler Du øver dig i Forberedelse til kodeinterviews med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Forberedelse til kodeinterviews?
Der kræves ingen tidligere erfaring. Forberedelse til kodeinterviews på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “sorted() og key-funktionen”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Forberedelse til kodeinterviews-lektion?
Ja. Alle Forberedelse til kodeinterviews-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- sorted() og key-funktionen
- Sortér efter flere felter
- Brugerdefineret rækkefølge med functools.cmp_to_key
- Hvorfor sortering først åbner for løsninger