Lajittelemalla luettelo Pythonissa voit järjestää sen kohteet nousevassa tai laskevassa järjestyksessä.
Pitkien koodilohkojen kirjoittamisen sijaan Pythonilla on sisäänrakennettu menetelmä, jonka avulla voit lajitella kohteet missä tahansa luettelossa tai taulukossa. Selitämme, miten se tehdään tässä viestissä.
Kuinka lajitella luettelo Pythonissa
Voit lajitella luettelon tai taulukon kohteet Pythonilla järjestellä() menetelmä.
järjestellä() menetelmä Pythonissa hyväksyy kaksi valinnaista argumenttia ja syntakse näyttää tältä:
list.sort (avain = funktio, käänteinen = tosi / väärä)
Oletuksena järjestellä() method järjestää luettelon kohteet nousevassa järjestyksessä:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
tulosta (myList)
Lähtö: ['A', 'B', 'C', 'D', 'F']
Voit käyttää käänteinen argumentti luettelon tarkastelemiseksi laskevassa järjestyksessä:
myList = ["C", "D", "B", "A", "F"]
myList.sort (käänteinen = True)
tulosta (myList)
Lähtö: ['F', 'D', 'C', 'B', 'A']
Voit myös järjestää luettelon kohteet kunkin merkkijonon pituuden mukaan.
Voit tehdä tämän luomalla toiminnon ja siirtämällä sen järjestellä() menetelmä käyttämällä valinnaista avain Perustelu:
myList = ["MUO", "Python", "JavaScript", "Lajittelu", "Lajittelulistat"]
def sortLength (kohde):
paluu len (tuote)
myList.sort (käänteinen = True, avain = sortLength)
tulosta (myList)
Tulos: ['JavaScript', 'Lajittelulistat', 'Python', 'Lajittelu', 'MUO']
Kuinka lajitella luettelo sanakirjoista Pythonissa
Voit käyttää järjestellä() tapa lajitella luettelo sanakirjoista.
Lajitellaan alla olevan sanakirjan tehtävät niiden ajan mukaan:
myArray = [
{"Tehtävä": "Pese", "Aika": 12.00},
{"Tehtävä": "Jalkapallo", "Aika": 24.00},
{"Tehtävä": "Lajittele", "Aika": 17.00},
{"Tehtävä": "Koodi", "Aika": 15.00}
]
def sortByTime (kohde):
palauta tuote ["Aika"]
myArray.sort (avain = sortByTime)
tulosta (myArray)
Koska ajan arvot ovat kokonaislukuja, yllä oleva koodilohko järjestää taulukon uudelleen tehtävän ajan perusteella.
Liittyvät: Taulukot ja luettelot toimivat Pythonissa
Yllä olevan taulukon lajittelun lisäksi voit järjestää sen myös aakkosjärjestyksessä käyttämällä merkkijonoja.
Jos haluat lajitella merkkijonon esimerkkitaulukossa, sinun tarvitsee vain muuttaa Aika hakasulkeessa kohtaan Tehtävä:
myArray = [
{"Tehtävä": "Pese", "Aika": 12.00},
{"Tehtävä": "Jalkapallo", "Aika": 24.00},
{"Tehtävä": "Lajittele", "Aika": 17.00},
{"Tehtävä": "Koodi", "Aika": 15.00}
]
def sortByTime (kohde):
palauta kohde ["Tehtävä"]
myArray.sort (avain = sortByTime)
tulosta (myArray)
Voit myös lajitella tehtävät käänteisessä järjestyksessä asettamalla käänteinen totta:
myArray.sort (avain = sortByTime, käänteinen = True)
Voit myös käytä lambda-toimintoa kanssa järjestellä() puhtaampaa koodia varten:
myArray.sort (avain = lambda getTime: getTime ["aika"])
tulosta (myArray)
Sisäkkäisten Python-luetteloiden lajittelu
Voit lajitella sisäkkäiset luettelot sarjoista kunkin luettelossa olevan sisäkkäisen elementin indeksin mukaan.
Esimerkiksi alla oleva koodi käyttää kunkin sarakkeen kolmatta kohdetta lajittelemaan luettelon nousevassa järjestyksessä:
Alist = = ((3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
palauta [2]
Alist.sort (avain = sortByThirdIndex)
tulosta (Alist)
Tulos: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Yllä olevassa lähdössä jokaisen dupletin kolmas kohde kasvaa nollasta 20: een peräkkäin.
Huomaa, että tämä ei toimi Python-sarjan kanssa, koska et voi indeksoida sitä. Tämän lisäksi jokaisen luettelossa olevan pesän on kuuluttava samaan tietotyyppiin.
Liittyvät: Mikä on joukko Pythonissa ja miten se luodaan
Tuloksen järjestäminen laskevassa järjestyksessä:
Alist.sort (avain = getIndex, käänteinen = True)
tulosta (Alist)
Tulos: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Katsotaanpa, miten tämä näyttää a lambda toiminto samoin:
Alist = = ((3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = lajiteltu (Alist, avain = lambda a: a [2])
tulosta (newList)
Tulos: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Kuinka lajitella luettelo Lajiteltu () -menetelmällä
Vaihtoehtoisesti voit käyttää lajiteltu () menetelmä.
Vaikka se toimii samalla tavalla kuin järjestellä() -menetelmällä se luo uuden lajitellun luettelon muuttamatta alkuperäistä. Sen syntaksiasettelu on myös hieman erilainen.
Syntaksi lajiteltu () menetelmä näyttää yleensä tältä:
lajiteltu (luettelo, avain = funktio, käänteinen = tosi / väärä)
Joten lajitella luettelo käyttämällä lajiteltu () menetelmällä, sinun on luotava uusi muuttuja lajiteltuun luetteloon:
Alist = = ((3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
palauta [2]
newList = lajiteltu (Alist, key = getIndex)
tulosta (newList)
Tulos: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
lajiteltu () menetelmä hyväksyy myös a lambda toimii avaimenaan:
Alist = = ((3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = lajiteltu (Alist, avain = lambda a: a [2])
tulosta (newList)
Tulos: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Missä voit käyttää luettelon lajittelua?
Tehokas ohjelmointi edellyttää vankkaa käsitystä Python-lajittelumenetelmästä. Sen avulla voit hallita luettelon tai taulukon läpikäyntiä, ja voit aina käyttää sitä tosielämän projekteissa. Esimerkiksi Python-luettelon lajittelu voi olla hyödyllistä, kun tietoja järjestetään uudelleen API: sta tai tietokannasta, joten se on järkevämpää loppukäyttäjälle.
Työskenteletkö luetteloiden kanssa Pythonissa? Tässä on mitä sinun on tiedettävä Python append -toiminnon käytöstä, kun työskentelet luetteloiden kanssa.
Lue seuraava
- Ohjelmointi
- Python
- Koodausoppaat
Idowu on intohimoisesti kaikesta älykkäästä tekniikasta ja tuottavuudesta. Vapaa-ajallaan hän leikkii koodauksella ja vaihtaa shakkilautaan, kun hän on tylsistynyt, mutta rakastaa myös irtautumista rutiinista silloin tällöin. Intohimo osoittaa ihmisille tien ympäri nykytekniikkaa motivoi häntä kirjoittamaan enemmän.
Tilaa uutiskirjeemme
Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja erikoistarjouksia!
Vielä yksi askel !!!
Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.