logo

sort() a Python

La funció d'ordenació es pot utilitzar per ordenar la llista tant en ordre ascendent com descendent. Es pot utilitzar per ordenar llistes de nombres enters, nombres de coma flotant, cadenes i altres Python . La seva complexitat temporal és O(NlogN).

Sintaxi de Python sort().

La sintaxi de la funció sort() a Python és la següent.



Sintaxi: nom_lista.ordena (clau=…, inversa=…)

Paràmetres:

Per defecte, Python sort() no requereix cap paràmetre addicional i ordena la llista en ordre ascendent. Tanmateix, té dos paràmetres opcionals:



  • clau: funció que serveix com a clau per a la comparació d'ordenació
  • revés: Si és cert, la llista s'ordena en ordre descendent.

Valor de retorn: La sort() no retorna res però altera la llista original segons el paràmetre passat.

Què és la funció Python sort()?

A Python, elsort()>La funció és un mètode que pertany a la llista. S'utilitza per defecte per ordenar en python o els elements d'una llista en ordre ascendent. Elsort()>El mètode modifica la llista original al seu lloc, és a dir, reorganitza els elements directament dins de l'objecte llista existent, en lloc de crear una nova llista ordenada.

Sort() en exemples de Python

Un exemple bàsic del mètode Python sort().



pitó de cadena f

Exemple: En aquest exemple, el codi següent defineix una llista anomenadaunsorted_list>amb elements numèrics. Elsort()>A continuació, s'aplica el mètode a la llista, que reordena els seus elements en ordre ascendent. A continuació, s'imprimeix la llista ordenada, mostrant el resultat de l'operació d'ordenació.

Python 3




unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)>

>

>

Sortida:

Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>

Diferents maneres d'ordenar () en Python

En Python,sort()>és un mètode integrat utilitzat per ordenar elements en una llista en ordre ascendent. Modifica la llista original al seu lloc, és a dir, reordena els elements directament dins de la llista sense crear una llista nova. Elsort()>mètode no retorna cap valor; simplement ordena la llista i l'actualitza.

  1. Classificació Llista en ordre ascendent
  2. Classificació Llista en ordre descendent
  3. Ordena amb funció personalitzada Ús de la clau
  4. Classificació Llista de cadenes per longitud
  5. Llista de classificació de Tuples per un element específic
  6. Llista de classificació de Diccionaris mitjançant una clau específica

Sort() a Python utilitzant la llista d'ordenació en ordre ascendent

El mètode `sort()` a Python s'utilitza per ordenar una llista d'elements en ordre ascendent. Modifica la llista original al seu lloc, reordenant els seus elements perquè estiguin en ordre numèric o lexicogràfic creixent. El mètode és aplicable a llistes que contenen valors numèrics, cadenes o una combinació d'ambdós. Per defecte, sort() a Python ordena una llista en ordre ascendent si no li proporcionem cap paràmetre.

Exemple : En aquest exemple, el codi següent mostra les operacions d'ordenació en diferents tipus de llistes. Primer, ordena una llista de nombres enters ('nombres') en ordre ascendent mitjançant el mètode `sort()`. A continuació, ordena una llista de nombres de coma flotant ('número decimal') en ordre ascendent.

Python 3




# 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)>

>

>

Sortida:

[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>

Sort() a Python utilitzant la llista d'ordenació en ordre descendent

Per ordenar una llista en ordre descendent, establiu el paràmetre invers a True de la funció sort() a Python.

my_list.sort(reverse=True)>

Exemple: I Aquest codi d'exemple defineix tres llistes de diferents tipus (nombres enters, nombres de coma flotant i cadenes), les ordena en ordre descendent mitjançant el mètode `sort` amb el paràmetre `reverse=True` i després imprimeix les llistes ordenades.

Python 3




# 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)>

>

>

Sortida:

[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>

Ordena amb funció personalitzada mitjançant la clau

En aquest mètode es descriu una operació d'ordenació amb una funció personalitzada utilitzant el paràmetre clau. Això permet ordenar segons un criteri específic definit per la funció personalitzada en lloc de l'ordenació per defecte. La funció personalitzada s'aplica a cada element i la llista s'ordena en conseqüència.

Exemple : En aquest exemple el codi defineix una funció `sortSecond` que retorna el segon element d'una tupla. A continuació, crea una llista de tuples, `list1`, i l'ordena en ordre ascendent en funció del segon element utilitzant la funció `sortSecond`.

Python 3




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)>

>

>

Sortida:

[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>

Ordenant la llista de cadenes per longitud a Sort() a Python

En aquest mètode ordenem una llista de cadenes en ordre ascendent de les seves longituds utilitzant la funció `sort()` amb la `key=len`. Això vol dir que les cadenes estan ordenades de la longitud més curta a la més llarga a la llista ordenada resultant.

Exemple: En aquest exemple, el codi següent defineix una llista de cadenes,words>, i després l'ordena en funció de la longitud de cada cadena mitjançant l'len()>funcionar com a clau d'ordenació. Finalment, imprimeix la llista ordenada.

Python 3




# 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)>

>

>

Sortida:

Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>

Ordenació de la llista de tuples per un element específic

Per ordenar una llista de tuples per un element específic, utilitzeu la funció `sort()` amb el paràmetre `key`. Especifiqueu una funció lambda com a clau, orientada a l'índex de l'element desitjat. Les tuples s'ordenaran en funció dels valors d'aquest element específic.

Exemple: En aquest mètode, el codi defineix una llista de tuples anomenades 'persones', on cada tuple representa el nom i l'edat d'una persona. A continuació, ordena la llista en funció del segon element de cada tupla (edat) utilitzant elsort>mètode i una funció lambda com a clau d'ordenació.

Python 3




# 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)>

>

>

Sortida:

Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]>

Ordenació de la llista de diccionaris per una clau específica

Aquest mètode implica utilitzar la funció `sort()` en una llista de diccionaris en Python. Si especifiqueu una funció lambda com a paràmetre clau, podeu ordenar la llista en funció d'una clau específica dins de cada diccionari. Això permet ordenar la llista de diccionaris en ordre ascendent segons els valors associats a la clau escollida.

Exemple : En aquest exemple el codi defineix una llista de diccionaris anomenatsstudents>, on cada diccionari representa un alumne amb claus de nom i edat. A continuació, ordena la llista de diccionaris en funció de la clau d'edat de cada diccionari utilitzant elsort>mètode i una funció lambda com a clau.

Python 3




# 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)>

>

>

Sortida:

Sorted by Age: [  {'name': 'Charlie', 'age': 22},  {'name': 'Alice', 'age': 25},  {'name': 'David', 'age': 28},  {'name': 'Bob', 'age': 30} ]>

Diferència entre la funció sortd() i sort() a Python

Vegem la diferència entre ordenat () i la funció sort() a Python:

Python ordenat()

Python ordena ()

La funció sortd() retorna una llista ordenada de l'objecte iterable específic. El mètode sort() ordena la llista.
Podem especificar un ordre ascendent o descendent mentre utilitzem la funció sortd(). Ordena la llista en ordre ascendent per defecte.
Sintaxi : ordenat (iterable, clau = clau, inversa = invers) Sintaxi : list.sort(reverse=True|False, key=myFunc)
El seu tipus de retorn és una llista ordenada. També el podem utilitzar per ordenar una llista en ordre descendent.

Es pot utilitzar amb qualsevol iterable, fins i tot si la comparació entre elements no està definida

Requereix que els elements siguin comparables utilitzant el<>i>>operadors

Manté l'ordre relatiu d'elements iguals, fent-lo estable.

Pot ser que no sigui estable; l'ordre dels elements iguals pot canviar.

O(n log n) complexitat temporal per a la majoria dels casos.

O(n log n) complexitat temporal per a la majoria dels casos.

Només pot ordenar una llista que només conté un tipus de valor. Ordena la llista al seu lloc.

Suporta akey>paràmetre per a criteris d'ordenació personalitzats.

També admet akey>paràmetre per a criteris d'ordenació personalitzats.

Requereix memòria addicional per a la nova llista ordenada.

Realitza l'ordenació al lloc, estalviant memòria.

Per saber-ne més, consulteu Diferència de Python entre la funció sortd() i sort(). .