Función ordenada() en Python

La función Python sorted() devuelve una lista ordenada del objeto iterable.

Sorted() ordena cualquier secuencia (lista, tupla) y siempre devuelve una lista con los elementos ordenados, sin modificar la secuencia original.

Sintaxis: sorted(iterable, key, reverse)

Parámetros: sorted toma tres parámetros de los cuales dos son opcionales. 

  • Iterable: secuencia (lista, tupla, string) o colección (diccionario, conjunto, conjunto congelado) o cualquier otro iterador que deba ordenarse.
  • Clave (opcional): una función que serviría como clave o base de comparación de clasificación.
  • Inverso (opcional): si se establece en verdadero, entonces el iterable se ordenará en orden inverso (descendente), por defecto se establece como falso.

Ejemplo de función ordenada() de Python

Ejemplo 1: Lista ordenada() de Python

Python3

x = [2, 8, 1, 4, 6, 3, 7]
 
print("Sorted List returned :"),
print(sorted(x))
 
print("\nReverse sort :"),
print(sorted(x, reverse=True))
 
print("\nOriginal list not modified :"),
print(x)

Producción:

Sorted List returned : [1, 2, 3, 4, 6, 7, 8]

Reverse sort : [8, 7, 6, 4, 3, 2, 1]

Original list not modified : [2, 8, 1, 4, 6, 3, 7]

Ejemplo 2: ordenar diferentes tipos de datos

Python3

# List
x = ['q', 'w', 'r', 'e', 't', 'y']
print(sorted(x))
 
# Tuple
x = ('q', 'w', 'e', 'r', 't', 'y')
print(sorted(x))
 
# String-sorted based on ASCII translations
x = "python"
print(sorted(x))
 
# Dictionary
x = {'q': 1, 'w': 2, 'e': 3, 'r': 4, 't': 5, 'y': 6}
print(sorted(x))
 
# Set
x = {'q', 'w', 'e', 'r', 't', 'y'}
print(sorted(x))
 
# Frozen Set
x = frozenset(('q', 'w', 'e', 'r', 't', 'y'))
print(sorted(x))

Producción:

['e', 'q', 'r', 't', 'w', 'y']
['e', 'q', 'r', 't', 'w', 'y']
['h', 'n', 'o', 'p', 't', 'y']
['e', 'q', 'r', 't', 'w', 'y']
['e', 'q', 'r', 't', 'w', 'y']
['e', 'q', 'r', 't', 'w', 'y']

Ejemplo 3: Python ordenado al revés

Python3

# Python3 code to demonstrate
# Reverse Sort a String
# using join() + sorted() + reverse
   
# initializing string
test_string = "geekforgeeks"
   
# printing original string
print("The original string : " + str(test_string))
   
# using join() + sorted() + reverse
# Sorting a string
res = ''.join(sorted(test_string, reverse = True))
       
# print result
print("String after reverse sorting : " + str(res))

Producción:

The original string : geekforgeeks
String after reverse sorting : srokkggfeeee

Ejemplo 4: Python ordenado() lambda

Python3

# Python code to demonstrate
# Reverse Sort a String
# using sorted() + reduce() + lambda
 
# import the module
import functools
# initializing string
test_string = "geekforgeeks"
 
# printing original string
print("The original string : " + str(test_string))
 
# using sorted() + reduce() + lambda
# Reverse Sort a String
res = functools.reduce(lambda x, y: x + y,
                       sorted(test_string,
                              reverse=True))
 
# print result
print("String after reverse sorting : " + str(res))

Producción:

The original string : geekforgeeks
String after reverse sorting : srokkggfeeee

Python ordenado() clave

sorted() tiene un parámetro opcional llamado ‘clave’ que toma una función como su valor. Esta función clave transforma cada elemento antes de ordenar, toma el valor y devuelve 1 valor que luego se usa dentro de la ordenación en lugar del valor original. Por ejemplo, si pasamos una lista de strings en sorted(), se ordena alfabéticamente. Pero si especificamos key = len, es decir, damos la función len como clave, entonces las strings se pasarán a len y el valor que devuelve, es decir, la longitud de las strings, se ordenará. Esto significa que las strings se ordenarían en función de su longitud.

Python3

L = ["cccc", "b", "dd", "aaa"]
 
print("Normal sort :", sorted(L))
 
print("Sort with len :", sorted(L, key=len))

Producción:

Normal sort : ['aaa', 'b', 'cccc', 'dd']
Sort with len : ['b', 'dd', 'aaa', 'cccc']

Key también puede tomar funciones definidas por el usuario como su valor para la base de clasificación.

Python3

# Sort a list of integers based on
# their remainder on dividing from 7
def func(x):
    return x % 7
 
L = [15, 3, 11, 7]
 
print("Normal sort :", sorted(L))
print("Sorted with key:", sorted(L, key=func))

Producción:

Normal sort : [3, 7, 11, 15]
Sorted with key: [7, 15, 3, 11]

Este artículo es una contribución de Harshit Agrawal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *