A menudo hago arreglos en Python usando expresiones lambda, y aunque funciona bien, no me parece muy legible, y esperaba que hubiera una mejor manera. Aquí hay un caso de uso típico para mí.ordenación python sin expresiones lambda
tengo una lista de números, por ejemplo, x = [12, 101, 4, 56, ...]
Tengo una lista separada de los índices: y = range(len(x))
Quiero ordenar y
basado en los valores de x
, y hago esto:
y.sort(key=lambda a: x[a])
¿Hay una buena manera de hacerlo sin usar lambda?
alguna razón en particular por las que una lista ordenada de los valores originales no sería suficiente? 'x_sorted = ordenado (x)' – MattH
El OP quiere los índices de los elementos en orden, no los elementos en sí mismos. – PaulMcG
Es una pena que 'lambda' sea una palabra clave tan larga y fea. Esta es más o menos la manera de hacerlo. – PaulMcG