Funkcijo razvrščanja lahko uporabite za razvrščanje seznama v naraščajočem in padajočem vrstnem redu. Uporablja se lahko za razvrščanje seznamov celih števil, števil s plavajočo vejico, nizov in drugih Python . Njegova časovna kompleksnost je O(NlogN).
Sintaksa Python sort().
Sintaksa funkcije sort() v Pythonu je naslednja.
Sintaksa: list_name.sort(ključ=…, obratno=…)
Parametri:
Python sort() privzeto ne zahteva dodatnih parametrov in razvrsti seznam v naraščajočem vrstnem redu. Vendar pa ima dva neobvezna parametra:
- ključ: funkcijo, ki služi kot ključ za primerjavo sort
- vzvratno: Če je res, je seznam razvrščen v padajočem vrstnem redu.
Vrnjena vrednost: Sort() ne vrne ničesar, ampak spremeni prvotni seznam v skladu s posredovanim parametrom.
Kaj je funkcija Python sort()?
V Pythonu jesort()>funkcija je metoda, ki pripada seznamu. Uporablja se za razvrščanje v pythonu ali elementov seznama v naraščajočem vrstnem redu privzeto. Thesort()>metoda spremeni prvotni seznam na mestu, kar pomeni, da prerazporedi elemente neposredno znotraj obstoječega predmeta seznama, namesto da ustvari nov razvrščen seznam.
Sort() v primerih Python
Osnovni primer metode sort() Python.
algoritem za hitro razvrščanje
Primer: V tem primeru spodnja koda definira seznam z imenomunsorted_list>z numeričnimi elementi. Thesort()>metoda se nato uporabi za seznam, ki prerazporedi svoje elemente v naraščajočem vrstnem redu. Razvrščeni seznam se nato natisne in prikazuje rezultat postopka razvrščanja.
Python3
unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)> |
>
>
Izhod:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>
Različni načini za razvrščanje() v Pythonu
V Pythonu,sort()>je vgrajena metoda, ki se uporablja za razvrščanje elementov na seznamu v naraščajočem vrstnem redu. Spremeni izvirni seznam na mestu, kar pomeni, da prerazporedi elemente neposredno na seznamu, ne da bi ustvaril nov seznam. Thesort()>metoda ne vrne nobene vrednosti; preprosto razvrsti seznam in ga posodobi.
- Razvrščanje Seznam v naraščajočem vrstnem redu
- Razvrščanje Seznam v padajočem vrstnem redu
- Razvrsti z funkcija po meri Uporaba ključa
- Razvrščanje Seznam nizov po dolžini
- Seznam za razvrščanje Tuples po določenem elementu
- Seznam za razvrščanje Slovarji po določenem ključu
Sort() v Pythonu z uporabo seznama razvrščanja v naraščajočem vrstnem redu
Metoda `sort()` v Pythonu se uporablja za razvrščanje seznama elementov v naraščajočem vrstnem redu. Izvirni seznam spreminja na mestu in njegove elemente preureja v naraščajočem številčnem ali leksikografskem vrstnem redu. Metoda je uporabna za sezname, ki vsebujejo številske vrednosti, nize ali kombinacijo obojega. Privzeto sort() v Pythonu razvrsti seznam v naraščajočem vrstnem redu, če mu ne zagotovimo parametrov.
Primer : V tem primeru spodnja koda prikazuje operacije razvrščanja na različnih vrstah seznamov. Najprej razvrsti seznam celih števil ('števil') v naraščajočem vrstnem redu z uporabo metode 'sort()'. Nato razvrsti seznam števil s plavajočo vejico ('decimalno število') v naraščajočem vrstnem redu.
Python3
# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort()> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort()> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort()> print>(words)> |
>
>
Izhod:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>
Sort() v Pythonu z uporabo seznama razvrščanja v padajočem vrstnem redu
Če želite razvrstiti seznam v padajočem vrstnem redu, nastavite obratni parameter na True funkcije sort() v Pythonu.
my_list.sort(reverse=True)>
Primer: I n ta primer kode definira tri sezname različnih tipov (cela števila, števila s plavajočo vejico in nizi), jih razvrsti v padajočem vrstnem redu z uporabo metode `sort` s parametrom `reverse=True` in nato natisne razvrščene sezname.
Python3
# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort(reverse>=>True>)> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort(reverse>=>True>)> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort(reverse>=>True>)> print>(words)> |
>
>
Izhod:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>
Razvrsti s funkcijo po meri z uporabo tipke
V tej metodi je opisana operacija razvrščanja s funkcijo po meri z uporabo ključnega parametra. To omogoča razvrščanje na podlagi določenega kriterija, ki ga definira funkcija po meri, namesto privzetega vrstnega reda. Funkcija po meri se uporabi za vsak element in seznam je ustrezno razvrščen.
Primer : V tem primeru koda definira funkcijo `sortSecond`, ki vrne drugi element tuple. Nato ustvari seznam tupl, `list1`, in ga razvrsti v naraščajočem vrstnem redu glede na drugi element s funkcijo `sortSecond`.
Python3
def> sortSecond(val):> >return> val[>1>]> # list1 to demonstrate the use of sorting> # using second key> list1>=> [(>1>,>2>),(>3>,>3>),(>1>,>1>)]> # sorts the array in ascending according to> # second element> list1.sort(key>=>sortSecond)> print>(list1)> # sorts the array in descending according to> # second element> list1.sort(key>=>sortSecond,reverse>=>True>)> print>(list1)> |
>
>
Izhod:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>
Razvrščanje seznama nizov po dolžini v Sort() v Pythonu
Pri tej metodi razvrstimo seznam nizov v naraščajočem vrstnem redu glede na njihove dolžine z uporabo funkcije `sort()` s `key=len`. To pomeni, da so nizi razporejeni od najkrajše do najdaljše dolžine na nastalem razvrščenem seznamu.
Primer: V tem primeru spodnja koda definira seznam nizov,words>in ga nato razvrsti glede na dolžino posameznega niza z uporabolen()>deluje kot ključ za razvrščanje. Na koncu natisne razvrščeni seznam.
Python3
# Original list of strings> words>=> [>'apple'>,>'banana'>,>'kiwi'>,>'orange'>,>'grape'>]> # Sorting by length using the len() function as the key> words.sort(key>=>len>)> # Displaying the sorted list> print>(>'Sorted by Length:'>, words)> |
>
>
Izhod:
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>
Razvrščanje seznama tuplev po določenem elementu
Če želite razvrstiti seznam tulp po določenem elementu, uporabite funkcijo `sort()` s parametrom `key`. Kot ključ določite funkcijo lambda, ki cilja na indeks želenega elementa. Tuple bodo razvrščene glede na vrednosti tega specifičnega elementa.
Primer: V tej metodi koda definira seznam tulp z imenom 'ljudje', kjer vsak tul predstavlja ime in starost osebe. Nato razvrsti seznam glede na drugi element vsake tuple (starost) z uporabosort>metoda in funkcija lambda kot ključ za razvrščanje.
Python3
# Original list of tuples> people>=> [(>'Alice'>,>25>), (>'Bob'>,>30>), (>'Charlie'>,>22>), (>'David'>,>28>)]> # Sorting by the second element of each tuple (age)> people.sort(key>=>lambda> x: x[>1>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, people)> |
>
>
Izhod:
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]> Razvrščanje seznama slovarjev po določenem ključu
Ta metoda vključuje uporabo funkcije `sort()` na seznamu slovarjev v Pythonu. Če kot ključni parameter določite funkcijo lambda, lahko razvrstite seznam na podlagi določenega ključa znotraj vsakega slovarja. To omogoča, da je seznam slovarjev urejen v naraščajočem vrstnem redu glede na vrednosti, povezane z izbranim ključem.
Primer : V tem primeru koda definira seznam klicanih slovarjevstudents>, kjer vsak slovar predstavlja učenca s ključi za ime in starost. Nato razvrsti seznam slovarjev glede na starostni ključ v posameznem slovarju z uporabosort>metoda in lambda funkcija kot ključ.
Python3
# Original list of dictionaries> students>=> [> >{>'name'>:>'Alice'>,>'age'>:>25>},> >{>'name'>:>'Bob'>,>'age'>:>30>},> >{>'name'>:>'Charlie'>,>'age'>:>22>},> >{>'name'>:>'David'>,>'age'>:>28>},> ]> # Sorting by the 'age' key in each dictionary> students.sort(key>=>lambda> x: x[>'age'>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, students)> |
>
>
Izhod:
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ]> Razlika med funkcijo sorted() in sort() v Pythonu
Poglejmo razliko med razvrščeno() in funkcijo sort() v Pythonu:
| Python razvrščeno() | Python sort() |
|---|---|
| Funkcija sorted() vrne razvrščen seznam določenega ponovljivega predmeta. | Metoda sort() razvrsti seznam. |
| Med uporabo funkcije sorted() lahko določimo naraščajoči ali padajoči vrstni red | Privzeto razvrsti seznam v naraščajočem vrstnem redu. |
| Sintaksa : razvrščeno (iterable, key=key, reverse=reverse) | Sintaksa : list.sort(reverse=True|False, key=myFunc) |
| Njegov povratni tip je razvrščen seznam. | Uporabimo ga lahko tudi za razvrščanje seznama v padajočem vrstnem redu. |
| Lahko se uporablja s katero koli iterabo, tudi če primerjava med elementi ni definirana | Zahteva, da so elementi primerljivi z uporabo |
| Ohranja relativni vrstni red enakih elementov, zaradi česar je stabilen. | Morda ni stabilen; vrstni red enakih elementov se lahko spremeni. |
| O(n log n) časovna kompleksnost za večino primerov. | O(n log n) časovna kompleksnost za večino primerov. |
| Razvrsti lahko samo seznam, ki vsebuje samo eno vrsto vrednosti. | Seznam razvrsti na mestu. |
| Podpira a | Podpira tudi a |
| Potreben je dodaten pomnilnik za nov razvrščeni seznam. | Izvaja razvrščanje na mestu in prihrani pomnilnik. |
Če želite izvedeti več, glejte Razlika v Pythonu med funkcijama sorted() in sort(). .