Kārtojot sarakstu Python, jūs varat kārtot tā vienumus augošā vai dilstošā secībā.

Tā vietā, lai to izdarītu, rakstiet garus koda blokus, Python ir iebūvēta metode, kas ļauj kārtot vienumus jebkurā sarakstā vai masīvā. Kā to izdarīt, mēs paskaidrosim šajā amatā.

Kā kārtot sarakstu Python

Izmantojot Python, jūs varat kārtot vienumus sarakstā vai masīvā kārtot () metodi.

The kārtot () metode Python pieņem divus izvēles argumentus, un sintakse izskatās šādi:

list.sort (atslēga = funkcija, reversa = patiesa / nepatiesa)

Pēc noklusējuma kārtot () metode saraksta elementus sakārto augošā secībā:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
izdrukāt (myList)
Izeja: ['A', 'B', 'C', 'D', 'F']

Jūs varat izmantot reverss arguments, lai sarakstu skatītu dilstošā secībā:

myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
izdrukāt (myList)
Izeja: ['F', 'D', 'C', 'B', 'A']

Sarakstā esošos vienumus varat arī sakārtot pēc katras virknes garuma.

Lai to izdarītu, izveidojiet funkciju un nododiet to kārtot () metodi, izmantojot izvēles taustiņu arguments:

instagram viewer
myList = ["MUO", "Python", "JavaScript", "Kārtot", "Kārtot saraksti"]
def sortLength (vienums):
atgriezties len (prece)
myList.sort (reverse = True, key = sortLength)
izdrukāt (myList)
Izeja: ['JavaScript', 'Sortlists', 'Python', 'Kārtot', 'MUO']

Kā kārtot vārdnīcu sarakstu Python

Jūs varat izmantot kārtot () metodi, lai kārtotu arī vārdnīcu sarakstu.

Kārtosim zemāk esošās vārdnīcas uzdevumus pēc to laika:

myArray = [
{"Uzdevums": "Mazgāt", "Laiks": 12.00},
{"Uzdevums": "Futbols", "Laiks": 24.00},
{"Uzdevums": "Kārtot", "Laiks": 17.00},
{"Uzdevums": "Kods", "Laiks": 15.00}
]
def sortByTime (vienums):
atgriezt preci ["Laiks"]
myArray.sort (atslēga = sortByTime)
drukāt (myArray)

Tā kā laika vērtības ir veseli skaitļi, iepriekš minētais kodu bloks pārkārto masīvu, pamatojoties uz uzdevuma laiku.

Saistīts: Kā masīvi un saraksti darbojas Python

Papildus iepriekšminētā masīva šķirošanai pēc laika, jūs varat to arī sakārtot alfabētiskā secībā, izmantojot uzdevumus, kas ir virknes.

Lai kārtotu pēc virknes masīva piemērā, jums tikai jāmaina Laiks kvadrātiekavās uz Uzdevums:

myArray = [
{"Uzdevums": "Mazgāt", "Laiks": 12.00},
{"Uzdevums": "Futbols", "Laiks": 24.00},
{"Uzdevums": "Kārtot", "Laiks": 17.00},
{"Uzdevums": "Kods", "Laiks": 15.00}
]
def sortByTime (vienums):
atgriezt vienumu ["Uzdevums"]
myArray.sort (atslēga = sortByTime)
drukāt (myArray)

Varat arī kārtot uzdevumus apgrieztā secībā, iestatot reverss uz patiesību:

myArray.sort (atslēga = sortByTime, reverse = True)

Jūs varat arī izmantojiet lambda funkciju ar kārtot () tīrākam kodam:

myArray.sort (atslēga = lambda getTime: getTime ["Laiks"])
drukāt (myArray)

Kā kārtot ligzdoto Python sarakstu

Jūs varat kārtot ligzdoto kopu sarakstu pēc katra šajā sarakstā ievietotā elementa indeksa.

Piemēram, zemāk redzamais kods izmanto katra elementa trešo vienumu, lai kārtotu sarakstu augošā secībā:

Alists = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
atgriezt [2]
Alist.sort (atslēga = sortByThirdIndex)
drukāt (Alist)
Rezultāts: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Iepriekš minētajā izvadā katra elementa trešais vienums secīgi palielinās no nulles līdz divdesmit.

Ņemiet vērā, ka tas nedarbojas ar Python kopu, jo to nevar indeksēt. Turklāt katrai saraksta ligzdai jāpieder vienam un tam pašam datu tipam.

Saistīts: Kas ir Python kopa un kā to izveidot

Lai izkārtotu izvadi dilstošā secībā:

Alist.sort (key = getIndex, reverse = True)
drukāt (Alist)
Rezultāts: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Apskatīsim, kā tas izskatās ar lambda funkcija arī:

Alists = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sakārtots (Alist, key = lambda a: a [2])
drukāt (newList)
Rezultāts: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kā kārtot sarakstu, izmantojot kārtoto () metodi

Alternatīvi, jūs varat izmantot sakārtots () metodi.

Lai gan tas darbojas līdzīgi kā kārtot () metodi, tas izveido jaunu kārtotu sarakstu, nemainot oriģinālu. Arī tā sintakses izkārtojums ir nedaudz atšķirīgs.

Sintakse sakārtots () metode parasti izskatās šādi:

sakārtoti (saraksts, atslēga = funkcija, reverss = patiess / nepatiesa)

Tātad, lai kārtotu sarakstu, izmantojot sakārtots () metodi, jums ir jāizveido jauns mainīgais sakārtotajam sarakstam:

Alists = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
atgriezt [2]
newList = sakārtots (Alist, key = getIndex)
drukāt (newList)
Rezultāts: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

The sakārtots () metode pieņem arī a lambda darbojas kā tā atslēga:

Alists = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sakārtots (Alist, key = lambda a: a [2])
drukāt (newList)
Rezultāts: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kur jūs varat pieteikties sarakstu šķirošanu?

Efektīvai programmēšanai ir nepieciešams stingrs Python šķirošanas metodes izpratne. Tas ļauj jums kontrolēt saraksta vai masīva parādīšanos, un jūs vienmēr varat to izmantot reālās dzīves projektos. Piemēram, Python saraksta šķirošana var būt noderīga, pārkārtojot datus no API vai datu bāzes, tāpēc galalietotājam tas ir lietderīgāk.

E-pasts
Kā pievienot sarakstu Python

Darbs ar sarakstiem Python? Lūk, kas jums jāzina par funkcijas Python append izmantošanu, strādājot ar sarakstiem.

Lasiet Tālāk

Saistītās tēmas
  • Programmēšana
  • Python
  • Kodēšanas konsultācijas
Par autoru
Idowu Omisola (Publicēti 66 raksti)

Idowu aizrauj kaut ko gudru tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pāriet uz šaha galdiņu, kad viņam ir garlaicīgi, taču viņš mīl arī kādu laiku atrauties no rutīnas. Aizraušanās ar cilvēku parādīšanu mūsdienu tehnoloģijās motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.