Buongiorno lista, approfittando di questo periodo, ho ripreso a cimentarmi col caro python e mi sono imbattutto in una situazione che non riesco a risolvere:

ho due liste; nella prima (capitali) sono riportati i nomi delle principali città del mondo (una trentina) e nella seconda lista, (temperature) in corrispondenza di posizione di ogni capitale, la temperatura massima della giornata.

volevo fare in modo che queste due liste venissero ordinate in modo tale che temperature e nomi delle capitali vengano riportate in ordine decrescente sulla base delle temperature.

mi andrebbe bene anche riuscirci riportando i dati in due nuove liste che potrei chiamare capitali ordinate e temperature ordinate e in tal caso, vorrei riuscire a mantenere intatte le due liste originali.  Ho quindi creato due liste vuote (capitali_ordinate) e (temperature_ordinate). Ho poi fatto quanto segue:

temperature_ordinate = temperature[0:]
temperature_ordinate.sort(reverse=True)

E fin qui, Il risultato corrisponde a quanto volevo ottenere

Ora devo inserire nella lista capitali_ordinate i nomi delle capitali in 
posizione corrispondente alla relativa temperatura e qui mi si crea il problema:

lunghezza_temperature_ordinate =len(temperature_ordinate)
for ordinein range (lunghezza_temperature_ordinate):
    posizione = capitali.index(temperature_ordinate[ordine])
    capitali_ordinate.insert(ordine, capitali[posizione])

Se le temperature differiscono tutte, il risultato che ottengo è quello che mi 
aspetto ma nel momento in cui due o più temperature sono identiche,
il codice mi riporta nella lista capitali_ordinate, il nome della stessa prima 
capitale che l'iterazione incontra con temperatura x tante volte quante la 
stessa temperatura
si ripete e non riesco a risolvere questo inconveniente.

Suggerimenti? Soluzioni?

ci sto perdendo un mucchio di tempo ma non vado avanti
Grazie

_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a