Ordenar una lista en Python le permite organizar sus elementos en orden ascendente o descendente.
En lugar de escribir largos bloques de código para hacer eso, Python tiene un método incorporado que le permite ordenar los elementos en cualquier lista o matriz. Explicaremos cómo hacerlo en esta publicación.
Cómo ordenar una lista en Python
Puede ordenar los elementos en una lista o matriz usando Python clasificar() método.
La clasificar() El método en Python acepta dos argumentos opcionales y la sintaxis se ve así:
list.sort (clave = función, reverso = Verdadero / Falso)
Por defecto, el clasificar() El método organiza los elementos de una lista en orden ascendente:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
imprimir (myList)
Salida: ['A', 'B', 'C', 'D', 'F']
Puedes usar el contrarrestar argumento para ver la lista en orden descendente:
myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
imprimir (myList)
Salida: ['F', 'D', 'C', 'B', 'A']
También puede organizar los elementos en una lista por la longitud de cada cadena.
Para hacerlo, crea una función y pásala al clasificar() método usando el opcional clave argumento:
myList = ["MUO", "Python", "JavaScript", "Ordenar", "Listas de ordenación"]
def sortLength (elemento):
return len (artículo)
myList.sort (reverse = True, key = sortLength)
imprimir (myList)
Salida: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']
Cómo ordenar una lista de diccionarios en Python
Puedes usar el clasificar() método para ordenar una lista de diccionarios también.
Ordenemos las tareas en el diccionario a continuación por su tiempo:
myArray = [
{"Tarea": "Lavar", "Hora": 12.00},
{"Tarea": "Fútbol", "Hora": 24.00},
{"Tarea": "Ordenar", "Hora": 17.00},
{"Tarea": "Código", "Hora": 15.00}
]
def sortByTime (elemento):
devolver artículo ["Time"]
myArray.sort (clave = sortByTime)
imprimir (myArray)
Dado que los valores de tiempo son números enteros, el bloque de código anterior reorganiza la matriz en función del tiempo de la tarea.
Relacionados: Cómo funcionan las matrices y las listas en Python
Además de ordenar la matriz anterior por tiempo, también puede ordenarla alfabéticamente usando las tareas, que son cadenas.
Para ordenar por cadena en la matriz de ejemplo, solo necesita cambiar Hora en el corchete para Tarea:
myArray = [
{"Tarea": "Lavar", "Hora": 12.00},
{"Tarea": "Fútbol", "Hora": 24.00},
{"Tarea": "Ordenar", "Hora": 17.00},
{"Tarea": "Código", "Hora": 15.00}
]
def sortByTime (elemento):
devolver artículo ["Tarea"]
myArray.sort (clave = sortByTime)
imprimir (myArray)
También puede ordenar las tareas en orden inverso configurando contrarrestar a la verdad:
myArray.sort (clave = sortByTime, reverse = True)
Tú también puedes usar una función lambda con clasificar() para un código más limpio:
myArray.sort (key = lambda getTime: getTime ["Time"])
imprimir (myArray)
Cómo ordenar una lista de Python anidada
Puede ordenar una lista anidada de tuplas por el índice de cada elemento anidado en esa lista.
Por ejemplo, el siguiente código utiliza el tercer elemento de cada tupla para ordenar la lista en orden ascendente:
Alista = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
devolver un [2]
Alist.sort (clave = sortByThirdIndex)
imprimir (Alist)
Salida: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
En la salida anterior, el tercer elemento de cada tupla aumenta de cero a veinte de forma consecutiva.
Tenga en cuenta que esto no funciona con un conjunto de Python ya que no puede indexarlo. Además de eso, cada nido de la lista debe pertenecer al mismo tipo de datos.
Relacionados: ¿Qué es un conjunto en Python y cómo crear uno?
Sin embargo, para organizar la salida en orden descendente:
Alist.sort (clave = getIndex, reverse = True)
imprimir (Alist)
Salida: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Veamos cómo se ve esto con un lambda también funciona:
Alista = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = ordenado (Alist, key = lambda a: a [2])
imprimir (nuevaLista)
Salida: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Cómo ordenar una lista usando el método Sorted ()
Alternativamente, puede utilizar el ordenado () método.
Aunque funciona de manera similar al clasificar() método, crea una nueva lista ordenada sin modificar el original. Su diseño de sintaxis también es ligeramente diferente.
La sintaxis de la ordenado () El método generalmente se ve así:
ordenado (lista, tecla = función, reverso = Verdadero / Falso)
Entonces, para ordenar una lista usando el ordenado () método, necesita crear una nueva variable para la lista ordenada:
Alista = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
devolver un [2]
newList = ordenado (Alist, key = getIndex)
imprimir (nuevaLista)
Salida: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
La ordenado () El método también acepta un lambda funcionar como su clave:
Alista = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = ordenado (Alist, key = lambda a: a [2])
imprimir (nuevaLista)
Salida: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
¿Dónde se puede aplicar la clasificación de listas?
Se necesita un conocimiento sólido del método de ordenación de Python para una programación eficiente. Le permite controlar cómo aparece una lista o matriz, y siempre puede aplicarla en proyectos de la vida real. Por ejemplo, ordenar una lista de Python puede resultar útil al reorganizar los datos de una API o una base de datos, por lo que tiene más sentido para un usuario final.
¿Trabaja con listas en Python? Esto es lo que necesita saber sobre el uso de la función de adición de Python al trabajar con listas.
Leer siguiente
- Programación
- Pitón
- Tutoriales de codificación
Idowu es un apasionado de la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino en torno a la tecnología moderna lo motiva a escribir más.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Un paso más…!
Confirme su dirección de correo electrónico en el correo electrónico que le enviamos.