[ Foro de Python ]

ordenar alfabeticamente una lista.

15-May-2023 01:05
Invitado (IVi)
1 Respuestas

Tienes una lista con los nombres y apellidos de estudiantes de un curso, ordenados alfabéticamente por apellido y luego por nombre:
estudiantes = [
'Mario Avedaño',
'Policarpo Avedaño',
'Juan Bodoque',
'Juanin Harry',
'Mario Hugo',
'Dylan Manguera',
'Eusebio Manguera'
]

Deberás definir la función agregar_estudiante(lista, estudiante), la cual recibe como parámetro una lista en el formato anterior y el nombre de un nuevo estudiante. La función deberá agregar al estudiante en la posición correcta (ordenado alfabéticamente por apellido y nombre) de la lista y luego retornar la lista. Por ejemplo, si en la lista anterior se agrega el estudiante 'Eliza Manguera', entonces tu función deberá retornar:

['Mario Avedaño',
'Policarpo Avedaño',
'Juan Bodoque',
'Juanin Harry',
'Mario Hugo',
'Dylan Manguera',
'Eliza Manguera',
'Eusebio Manguera'
]

### Realmente no logro hacerlo . En el foro del curso no me responden y no entiendo como ordenar alfabeticamente a partir de el apellido porque el sort me ordena desde en nombre ...


17-May-2023 11:43
Nacho Cabanes (+84)

Lo ideal sería saber qué has aprendido hasta ahora, para saber qué puedes usar, y no ir por delante del curso.

Por ejemplo, doy por sentado que usas ".sort()" para ordenar y que conoces ".split()" para descomponer una cadena de texto en fragmentos separados por espacios.

En ese caso, el "truco" (un tanto avanzado) es indicar a ".sort" que quieres usar como criterio de ordenación el segundo detalle de ese ".split", así:

estudiantes.sort(key=lambda x: x.split()[1])






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)