Python - Ayuda no entiendo

 
Vista:
Imágen de perfil de Alejandro

Ayuda no entiendo

Publicado por Alejandro (7 intervenciones) el 28/08/2023 22:47:20
Tenemos lo siguiente

1
2
3
4
5
6
7
8
words = ["Alex5", "Ivan1", "Daniel3", "Aldo2", "Diego8", "Liliana4"]
 
 
print(sorted(words, key=lambda w:sorted(w)) ) #1MER RESULTADO
 
funcion_Prueba = lambda w:sorted(w)
resultado_Prueba =  funcion_Prueba(words)
print(resultado_Prueba) #2DO RESULTADO

Para el primer resultado tenemos a la salida esto:
['Ivan1', 'Aldo2', 'Daniel3', 'Liliana4', 'Alex5', 'Diego8']

Y para el segundo resultado tenemos a la salida lo siguiente:
['Aldo2', 'Alex5', 'Daniel3', 'Diego8', 'Ivan1', 'Liliana4']

Alguien que me explique porque en la primera lo ordena dependiendo el numero que tenga y en la segunda al parecer lo ordena por abecedario tomando en cuenta el primer caracter.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda no entiendo

Publicado por anonymous (3 intervenciones) el 29/08/2023 12:47:43
Saludos!
Si miras las características de sorted() verás que requiere:
sorted(iterable, key=key, reverse=reverse)
Observa que en la función prueba no tienes key y por tanto no decide el orden.
Te doy una pista a ver si te das cuenta:

1
2
3
4
5
words = ["Alex5", "Ivan1", "Daniel3", "Aldo2", "Diego8", "Liliana4"]
print(sorted(words, key=lambda w:sorted(w)) ) #1MER RESULTADO
funcion_Prueba = lambda w:sorted(w, key=lambda w:sorted(w)) #PISTA!!!!!
resultado_Prueba =  funcion_Prueba(words)
print(resultado_Prueba) #2DO RESULTADO

De esta manera el resultado te sale:
'Ivan1', 'Aldo2', 'Daniel3', 'Liliana4', 'Alex5', 'Diego8']
'Ivan1', 'Aldo2', 'Daniel3', 'Liliana4', 'Alex5', 'Diego8']

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar