Python - Ordenar listas paralelas en Python

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Ordenar listas paralelas en Python

Publicado por Lola (2 intervenciones) el 26/06/2019 15:14:15
Quiero saber cómo podría ordenar una lista de mayor a menor y que al presentar la información las listas paralelas salgan en el orden que tomó la lista ordenada de mayor a menor.

Por ejemplo tengo las listas:

1
2
3
4
metros=[1569,2568,1568,1569,13518,16818]
numeroHabitaciones=[2,6,8,2,5,3]
ubicacion=[norte,sur,este,norte,oeste,sur]
numerodePlantas=[2,3,1,3,4,1]

y quiero que mi output sea con este formato:

Capture


pero con los datos ya ordenados por metros (en este caso del dato mayor al menor) y solo quiero los datos de las 2 primeras casas con mayor cantidad de metros.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil
Val: 2.195
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ordenar listas paralelas en Python

Publicado por tincopasan (605 intervenciones) el 26/06/2019 20:48:25
varias cosas:
1)no has intentando nada, que facil esperar todo listo
2)la lista ubicación no está bien declarada, salvo que antes hayas declarado variables
3)
1
y quiero que mi output sea con este formato
¿cuesta mucho pedir una posibilidad? así estamos
4) este método es un asco, ¿por qué no usar diccionarios?
5)python ya trae funciones simples para esto: zip, map, sort
en fin, es tan simple que da pena escribir el código:
1
2
3
4
5
6
7
8
9
10
11
12
metros=[1569,2568,1568,1569,13518,16818]
numeroHabitaciones=[2,6,8,2,5,3]
ubicacion=['norte','sur','este','norte','oeste','sur']  #la declaré correctamente según este ejemplo
numerodePlantas=[2,3,1,3,4,1]
 
metros,numeroHabitaciones,ubicacion,numerodePlantas= map(list, zip(*sorted(zip(metros,numeroHabitaciones,ubicacion,numerodePlantas),reverse=True)))
#acá están las tres funciones básicas
 
print("Ubicación   Metros   Número de Plantas   Número de Habitaciones")
for x in range(2): #ya que querés... solo 2
    print("{:<12}{:<10} {:<15} {:>15}".format(ubicacion[x],metros[x],numerodePlantas[x],numeroHabitaciones[x]))
     #acomoda vos como quieras el formato, ésta es una muestra  
Saludos
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