sorted() ja key-funktio
Järjestä lukuja, merkkijonoja ja tupleja
sorted() ja key-funktio on ilmainen Valmistautuminen ohjelmointihaastatteluihin-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Valmistautuminen ohjelmointihaastatteluihin-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Valmistautuminen ohjelmointihaastatteluihin-kurssilla on yhteensä 4 oppituntia.
Lajittelu ratkaisee kilpailuja
Monet kilpailutehtävät helpottuvat, kun data on järjestyksessä. Ensimmäinen työkalunne on sorted(), joka palauttaa uuden lajitellun listan. 🏆
sorted() palauttaa kopion
Kutsu sorted(nums) jättää alkuperäisen listan muuttamatta ja antaa teille uuden lajitellun listan. Tämä on kätevää, kun tarvitsette syötettä myöhemmin.
nums = [3, 1, 2]
print(sorted(nums)) # [1, 2, 3]
print(nums) # [3, 1, 2]list.sort() lajittelee paikallaan
Kun ette tarvitse alkuperäistä järjestystä, list.sort() lajittelee listan paikallaan ja palauttaa arvon None. Se säästää muistia suurilla taulukoilla.
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]Oletusjärjestys on nouseva
Python lajittelee oletusarvoisesti pienimmästä suurimpaan. Luvut etenevät pienestä suureen ja merkkijonot sanakirjajärjestyksessä merkki merkiltä.
print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']Kääntäkää järjestys reverse-arvolla
Välittäkää reverse=True, jos haluatte lajitella suurimmasta pienimpään. Tämä sopii erinomaisesti tilanteeseen, jossa greedy-vaihe tarvitsee suurimmat alkiot ensin.
print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]Tutustukaa key-funktioon
Argumentti key kertoo lajittelulle, miten kukin alkio järjestetään. Python kutsuu key-funktiota jokaiselle alkiolle ja järjestää alkiot palautettujen arvojen perusteella.
words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']key ja lambda
Pieni lambda mahdollistaa lajittelun minkä tahansa lausekkeen perusteella suoraan kutsussa. Tässä järjestämme luvut sen mukaan, kuinka kaukana ne ovat nollasta.
vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]Lajitelkaa oliot kentän mukaan
Kun käsittelette tupleja tai tietueita, kohdistakaa key merkitykselliseen kenttään. Muu osa alkiosta kulkee mukana automaattisesti.
people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]Lajittelu on vakaa
Pythonin lajittelu on vakaa: samat avaimet säilyttävät alkuperäisen keskinäisen järjestyksensä. Näin voitte ketjuttaa lajitteluja tasatilanteiden turvalliseksi ratkaisemiseksi.
key voittaa käsin vertailun
key lasketaan kerran jokaista alkiota kohden, joten menetelmä pysyy nopeana suurilla syötteillä. Käyttäkää sitä sen sijaan, että vaihtaisitte alkioita itse.
Lajittelu maksaa O(n log n)
Python lajittelee ajassa O(n log n). Kun n on enintään muutama sata tuhatta, tämä mahtuu mukavasti yhden sekunnin aikarajaan.
Pikatarkistus
Haluatte järjestää listan, mutta säilyttää alkuperäisen muuttumattomana.
Kertaus
Voitte järjestää datan käyttämällä sorted()-funktiota tai lajitella paikallaan, kääntää järjestyksen reverse-parametrilla ja järjestää mitä tahansa key-avaimen avulla. Vakaa lajittelu pitää tasatilanteet hallinnassa. 🎉
Opi Valmistautuminen ohjelmointihaastatteluihin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 90
- Oppitunnit
- 360
Usein kysytyt kysymykset
Onko oppitunti ”sorted() ja key-funktio” ilmainen?
Kyllä – oppitunnin ”sorted() ja key-funktio” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Valmistautuminen ohjelmointihaastatteluihin-kurssin, päivitä CoddyKit PROhon. Valmistautuminen ohjelmointihaastatteluihin-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”sorted() ja key-funktio”?
Järjestä lukuja, merkkijonoja ja tupleja Harjoittelet Valmistautuminen ohjelmointihaastatteluihin-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Valmistautuminen ohjelmointihaastatteluihin-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Valmistautuminen ohjelmointihaastatteluihin-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”sorted() ja key-funktio”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Valmistautuminen ohjelmointihaastatteluihin-oppitunnilla?
Kyllä. Jokainen Valmistautuminen ohjelmointihaastatteluihin-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- sorted() ja key-funktio
- Järjestä usean kentän perusteella
- Mukautettu järjestys functools.cmp_to_keyillä
- Miksi lajittelu ensin avaa ratkaisuja