Tenemos una lista de números o cadenas y queremos ordenar los elementos de esta lista. Básicamente, podemos usar el método de ordenación o la función ordenada para lograr lo que queremos.
La diferencia entre sort y sorted es que sort es un método de lista que modifica la lista en su lugar y no podemos usar el método de ordenación con otro objeto como tupla, mientras que sorted es una función incorporada que crea una nueva lista y la original no lo hizo. no cambia.
En este artículo, mencionaremos cómo usar estas funciones para ordenar, de manera ascendente o descendente, una lista de números, cadenas, tuplas o literalmente cualquier objeto.
También mencionaremos cómo definir sus propias funciones de clasificación personalizadas.
- Ordenar una lista de números
- Ordenar una lista de cadenas
- Ordenar una lista de tuplas
- Ordenar una lista de objetos
1) Ordenar una lista de números
Por sort
método, podemos ordenar la lista de números, ya sean enteros o flotantes.
Nota: el método viene después del objeto como example debajo
>>> Lst = [20, 25.4, 12, -16, -3.14, 3, -5, 7]
>>> Lst.sort()
>>> Lst
[-16, -5, -3.14, 3, 7, 12, 20, 25.4]
Como ves el orden del objeto Lst
ha sido cambiado.
Pero si queremos mantener la lista original sin cambiar y asigna el nuevo orden a la nueva lista, usaremos sorted
funciona como se muestra a continuación.
>>> Lst = [20, 25.4, 12, -16, -3.14, 3, -5, 7]
>>> Sorted_Lst = sorted(Lst)
>>> Sorted_Lst
[-16, -5, -3.14, 3, 7, 12, 20, 25.4]
Si queremos ordenar la lista en orden descendente, usaremos la palabra clave reverse
y asignándole True
como a continuación.
>>> Lst = [20, 25.4, 12, -16, -3.14, 3, -5, 7]
>>> Sorted_Lst = sorted(Lst, reverse = True)
>>> Sorted_Lst
[25.4, 20, 12, 7, 3, -3.14, -5, -16]
2) Ordenar una lista de cadenas
Usaremos sort
o sorted
para clasificar cuerdas
>>> Lst = ['bmw','ford','audi','toyota']
>>> Lst.sort()
>>> Lst
['audi', 'bmw', 'ford', 'toyota']
También todavía usamos el reverse
palabra clave para ordenar en orden descendente.
>>> Lst = ['bmw','ford','audi','toyota']
>>> Lst.sort(reverse=True)
>>> Lst
['toyota', 'ford', 'bmw', 'audi']
Nota: Python trata todas las letras mayúsculas antes que las minúsculas
Veremos que en el example debajo.
>>> Lst = ['bmw','ford','audi','Toyota']
>>> Lst.sort()
>>> Lst
['Toyota', 'audi', 'bmw', 'ford']
Pero podemos ordenar una lista de cadenas sin distinción entre mayúsculas y minúsculas utilizando la palabra clave key=str.lower
por sort
método de la siguiente manera.
>>> Lst = ['bmw','ford','audi','Toyota']
>>> Lst.sort(key=str.lower)
>>> Lst
['audi', 'bmw', 'ford', 'Toyota']
3) Ordenar una lista de tuplas
Debemos saber que la tupla es un objeto inmutable cuando la lista es un objeto mutable, también cuando ordenamos dos tuplas, comenzamos comparando los primeros elementos de las tuplas y si no son iguales, este es el resultado de la comparación.
>>> (5, 7) >> (5, 7) > (5, 9)
False
Por supuesto que podemos usar sort
método o sorted
función para ordenar tuplas como se muestra a continuación.
>>> sorted([(5, 4), (3, 3), (3, 10)])
[(3, 3), (3, 10), (5, 4)]
>>> sorted([('watermelon', 'green'), ('apple', ''), ('banana', '')])
[('apple', ''), ('banana', ''), ('watermelon', 'green')]
Nota: Podemos ordenar la tupla por segundo elemento.
usaremos lambda
para definir nuestra propia función clave como se muestra a continuación.
>>> Lst = [("Amanda", 35), ("John", 30), ("Monica", 25)]
>>> Lst.sort(key=lambda x: x[1])
>>> print(Lst)
[('Monica', 25), ('John', 30), ('Amanda', 35)]
4) Ordenar una lista de objetos
Los objetos son tipos de tipos de datos para Python, para ordenar este tipo de tipo de datos, debemos poner estos objetos en una lista como se muestra a continuación.
Supongamos que tenemos un Student
la clase tiene métodos de nombre y edad que se ven así: –
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
Ahora crearemos algunos Student
objetos y agréguelos a una lista para ordenarlos.
>>> John = Student('John', 30)
>>> Amanda = Student('Amanda', 35)
>>> Monica = Student('Monica', 25)
>>> Lst = [John, Amanda, Monica]
Si ordenamos la lista por name
método.
>>> Lst.sort(key=lambda x: x.name)
>>> print([item.name for item in Lst])
['Amanda', 'John', 'Monica']
Si ordenamos la lista por age
método.
>>> Lst.sort(key=lambda x: x.age)
>>> print([item.name for item in Lst])
['Monica', 'John', 'Amanda']
Python tiene muchas funciones y métodos incorporados que nos ayudan a resolver problemas,sort
y sorted
se utilizan para ordenar cualquier lista de números, cadenas, tuplas y objetos.
Leer también:
- Cómo usar la función raw_input de Python con ejemplos
- Cómo configurar el entorno virtual de Python en Ubuntu 18.04