sorted() og key-funksjonen
Sorter tall, strenger og tupler
sorted() og key-funksjonen er en gratis leksjon i Forberedelse til kodeintervjuer på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Forberedelse til kodeintervjuer, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Forberedelse til kodeintervjuer inneholder totalt 4 leksjoner.
Sortering gjør konkurranseoppgaver enklere
Mange konkurranseoppgaver blir enkle når dataene er sortert. Det første verktøyet ditt er sorted(), som returnerer en ny sortert liste. 🏆
sorted() returnerer en kopi
Hvis du kaller sorted(nums), forblir den opprinnelige listen uendret, og du får en ny sortert liste. Det er nyttig når du trenger inndataene 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 trenger den opprinnelige rekkefølgen, sorterer list.sort() på stedet og returnerer None. Det sparer minne for store arrayer.
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]Stigende rekkefølge som standard
Som standard sorterer Python fra minst til størst. Tall går fra lavt til høyt, og strenger sorteres i ordboksrekkefølge, tegn for tegn.
print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']Vend med reverse
Send inn reverse=True for å sortere fra størst til minst. Det er perfekt når et grådig steg trenger de største elementene først.
print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]Bli kjent med funksjonen key
Argumentet key forteller sorteringen hvordan hvert element skal rangeres. Python kaller key på hvert element og sorterer etter verdiene som returneres.
words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']key med en lambda
En liten lambda lar deg sortere etter et vilkårlig uttrykk direkte. Her sorterer vi tall etter hvor langt de ligger fra null.
vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]Sorter objekter etter et felt
For tupler eller poster lar du key peke på feltet som betyr noe. Resten av elementet følger med automatisk.
people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]Sortering er stabil
Pythons sortering er stabil: Elementer med like nøkler beholder den opprinnelige innbyrdes rekkefølgen. Dermed kan du legge sorteringer oppå hverandre for å løse likheter på en trygg måte.
key slår manuell sammenligning
En key beregnes én gang per element, så metoden holder seg rask for store inndata. Bruk den i stedet for å bytte elementer manuelt.
Sortering koster O(n log n)
Python sorterer på O(n log n)-tid. For n opptil noen hundre tusen elementer holder det seg komfortabelt innenfor en grense på ett sekund.
Sjekk deg selv
Du trenger listen sortert, men må beholde originalen uendret.
Oppsummering
Du kan ordne data med sorted() eller sortere på stedet, snu rekkefølgen med reverse og rangere hva som helst med en key. Stabil sortering holder like elementer ryddige. 🎉
Lær deg Forberedelse til kodeintervjuer med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 90
- Leksjoner
- 360
Ofte stilte spørsmål
Er leksjonen «sorted() og key-funksjonen» gratis?
Ja – hele teksten i «sorted() og key-funksjonen» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Forberedelse til kodeintervjuer-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Forberedelse til kodeintervjuer inneholder totalt 4 leksjoner.
Hva lærer jeg i «sorted() og key-funksjonen»?
Sorter tall, strenger og tupler Du øver på Forberedelse til kodeintervjuer med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Forberedelse til kodeintervjuer?
Ingen tidligere erfaring er nødvendig. Forberedelse til kodeintervjuer på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «sorted() og key-funksjonen»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Forberedelse til kodeintervjuer-leksjonen?
Ja. Alle Forberedelse til kodeintervjuer-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- sorted() og key-funksjonen
- Sorter etter flere felt
- Egendefinert rekkefølge med functools.cmp_to_key
- Hvorfor sortering først åpner for løsninger