[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