si tengo una lista que contiene una lista que tiene este aspecto ...Python lista de ordenación de listas/ascendente y luego decending
['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
cómo puedo ordenarlos de manera que el elemento 0 se ordena descendente y el elemento 1 clasificado de forma ascendente por lo que el resultado será similar ...
['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
Usando itemgetter
me puede pasar a la inversa en el elemento 0, pero entonces yo recurro contra elemento que, por supuesto, sino que arruina la clase anterior. No puedo hacer una combinación de teclas, ya que primero tiene que ordenar descendente y luego ascendente.
TIA, PK
Lo aceptaré tan pronto como me permita. Esto es exactamente lo que necesitaba. Estoy trabajando en un problema de enrutamiento de ubicaciones/almacenes de contenedores para las listas de recogida en nuestro almacén, y este fue el truco. Si tiene tiempo, ¿podría explicar qué hace "lambda k: (k [0], - k [1])"? ¿El signo negativo significa lo contrario? ¿Pude haber obtenido el mismo resultado con lambda k: (-k [0], k [1]) sin el argumento inverso? – Ominus
@Ominus: el '-k [1]' invierte el signo en el entero que invierte su orden de clasificación natural. No puede hacer '-k [0]' ya que ese valor es una cadena. Entonces, 'reverse = True' invierte el orden de clasificación y' -k [1] 'anula esa inversión en el segundo elemento. –