Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ordenar lista con sort() y key en python
#2
Hola, Daniel.

Puesto que cada elemento de la lista "palabra" tiene a su vez dos elementos (la palabra en inglés y las traducciones al español), tenés que indicarle al sort() cuál de los dos debe considerar para ordenar la lista. En este caso es siempre el primer elemento de la tupla, que contiene la palabra en inglés. Eso lo podés hacer con una función pasada al argumento key. (saco toda la lógica de archivos para simplificar):

Código:
import pprint

contenido_archivo = """\
command,comando mando orden
close,cerrar
clothes,ropa
cloudy,nublado nuboso
club,club discoteca
cold,frío
color,color
college,Universidad
come,ven venir llegar
comes,viene proviene\
"""

palabras = []
for tmpLinea  in contenido_archivo.split("\n"):
    linea = tmpLinea.strip().split(',')
    palabras.append(linea)

palabras.sort(key=lambda linea: linea[0])
pprint.pprint(palabras)

También podrías usar:

Código:
from operator import itemgetter

# (...código anterior...)

palabras.sort(key=itemgetter(0))

En ambos casos imprime:

Código:
[['close', 'cerrar'],
['clothes', 'ropa'],
['cloudy', 'nublado nuboso'],
['club', 'club discoteca'],
['cold', 'frío'],
['college', 'Universidad'],
['color', 'color'],
['come', 'ven venir llegar'],
['comes', 'viene proviene'],
['command', 'comando mando orden']]

Te dejo una explicación sobre cómo funciona el argumento key: Cómo ordenar una lista o tupla.

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Mensajes en este tema
RE: Ordenar lista con sort() y key() en python. - por Francisco - 25-08-2022, 03:19 AM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)