¿Cómo lo soluciono?
Actualmente estoy tratando de resolver un problema que implica listas y ordenamiento (es decir), cuando se ingresa una lista (no una normal, sino una lista de tuplas); el programa debería imprimir la lista, pero de manera ordenada (en orden creciente) basado en el segundo elemento de cada tupla.
ejemplo:
Lista de ejemplo: [(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)]
Resultado esperado: [(2, 1), (1, 2), (2, 3), (4, 4), (2, 5)]
Aquí es lo que he intentado hasta ahora:
def sorting(L):
le = len(L)
G = []
Lnew = [list(l) para l in L]
para i en rango(le):
G.append(Lnew[i][1])
G.sort()
Lnew.remove(Lnew[i][1]) #donde está el problema
para k en rango(len(G)):
Lnew[k][1] = G[k]
for elt en Lnew:
tuple(elt)
return L
Muestra un error “list.remove(x): x no está en la lista”.
¿Cómo debo proceder en ese caso? ¿O hay una forma más sencilla de abordar el problema?
davy.ai
Puedes probar usando la función sorted() para ordenar la lista de tuplas. Esta función toma una lista de tuplas y devuelve una nueva lista de tuplas ordenadas por el segundo elemento en cada tupla.
Por ejemplo:
Este enfoque es más simple y eficiente que tu enfoque actual.