[Python] Dove sbaglio?

Carpediem i.carpediem a tiscali.it
Gio 30 Apr 2020 01:15:54 CEST


Un saluto a tutti e un grazie anticipato al volenteroso che avrà avuto 
la pazienza e la capacità di darmi una soluzione.

ho queste liste:

riepilogo_numeri_singoli = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
                             25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]

ritardo_numeri_singoli = [22, 0, 18, 34, 20, 7, 2, 1, 30, 22, 55, 47, 
53, 49, 52, 38, 12, 41, 29, 5, 11, 44, 26, 33, 40, 13, 50, 39, 4, 21,
                           45, 3, 53, 32, 6, 25, 55]

numeri_singoli_in_ordine = []
ritardo_numeri_singoli_ordine_decrescente = []


La mia intenzione è di inserire tutti gli elementi della lista 
ritardo_numeri_singoli nella lista 
ritardo_numeri_singoli_ordine_decrescente in modo da

avere tutti gli elementi distribuiti in ordine di grandezza dal più 
grande al più piccolo. Ciò fatto, ho poi l'esigenza che gli elementi 
della lista riepilogo_numeri_singoli

vengano inseriti all'interno della lista numeri_singoli_in_ordine in 
base all'indice corrispondente di ogni elemento contenuto nella lista 
ritardo_numeri_singoli ora inserito nella lista 
ritardo_numeri_singoli_ordine_decrescente.

In pratica, nella lista ritardo_numeri_singoli_ordine_decrescente voglio 
ottenere questa situazione [55, 55, 53, 53, 52, .............., 0]

e nella lista numeri_singoli_in_ordine voglio ottenere questa situazione 
[10, 36, 12, 32, .............] questo perchè il primo numero più grande 
della lista ritardo_numeri_singoli_ordine_decrescente (il primo 55)

nella lista_ritardo_numeri_singoli aveva indice 10 e all'indice 10 
corrisponde il numero 10 della lista riepilogo_numeri_singoli.

Quando eseguo il codice che ho scritto, il programma non segnala alcun 
errore ma resta in esecuzione senza concludersi. in pratica, come se 
entrasse in un loop infinito ma senza stampare nulla a video.

Carta e penna alla mano e una riga di codice alla volta, continuo ad 
essere convinto che tutto dovrebbe girare bene fino a concludersi ma non 
è così e non comprendo perchè.

Di seguito, inserisco il codice che sta causando la mia emicrania. Dov'è 
l'errore?


riepilogo_numeri_singoli = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
                             25,26,27,28,29,30,31,32,33,34,35,36]

ritardo_numeri_singoli = [22,0,18,34,20,7,2,1,30,22,55,47,53,49,52,38,12,41,29,5,11,44,26,33,40,13,50,39,4,21,
                           45,3,53,32,6,25,55]

numeri_singoli_in_ordine = []
ritardo_numeri_singoli_ordine_decrescente = []


ritardo_numeri_singoli_ordine_decrescente = ritardo_numeri_singoli[0:]
ritardo_numeri_singoli_ordine_decrescente.sort(reverse=True)
lunghezza_ritardo_numeri_singoli_ordine_decrescente =len(ritardo_numeri_singoli_ordine_decrescente)
posizione =0 for ordinein range (lunghezza_ritardo_numeri_singoli_ordine_decrescente):
     if ordine >0 and ritardo_numeri_singoli_ordine_decrescente[ordine] == ritardo_numeri_singoli_ordine_decrescente[ordine -1]:
         non_trovato =True while True:
             if ritardo_numeri_singoli_ordine_decrescente[ordine] == ritardo_numeri_singoli[posizione +1]:
                 posizione = ritardo_numeri_singoli.index(ritardo_numeri_singoli_ordine_decrescente[posizione +1])
                 numeri_singoli_in_ordine.insert(ordine, riepilogo_numeri_singoli[posizione])
                 non_trovato =False else:
                 posizione +=1 else:
         posizione = ritardo_numeri_singoli.index(ritardo_numeri_singoli_ordine_decrescente[ordine])
         numeri_singoli_in_ordine.insert(ordine, riepilogo_numeri_singoli[posizione])

print()
print(riepilogo_numeri_singoli)
print(ritardo_numeri_singoli)
print()
print(numeri_singoli_in_ordine)
print(ritardo_numeri_singoli_ordine_decrescente)

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200430/5510023b/attachment.html>


Maggiori informazioni sulla lista Python