[Python] Dove sbaglio?

Carpediem i.carpediem a tiscali.it
Gio 30 Apr 2020 19:45:00 CEST


Il 30/04/2020 18:54, Marco Beri ha scritto:
> On Thu, Apr 30, 2020 at 6:18 PM Carpediem <i.carpediem a tiscali.it 
> <mailto:i.carpediem a tiscali.it>> wrote:
>
>     Grazie Alessandro. Mi hai fatto notare l'assenza dell'istruzione
>     break e
>     ora che l'ho inserita, il programma termina la sua esecuzione.
>
>     Purtroppo, non mi restituisce ciò che mi aspetto e continuo a non
>     capire
>     perchè. L'ordinamento che cerco, è in
>
>     relazione con l'indice dei numeri della lista di riferimento e
>     utilizzare il metodo sorted() per quel che ho visto, o compreso,
>     non mi
>     è di aiuto.
>
>     Partendo da questo:
>
>     [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]
>
>     [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]
>
>     volevo ottenere questo:
>
>     [10, 36, 12, 32, .............]
>
>     [55, 55, 53, 53, 52, ......]
>
>
> Se guardi la documentazione di cosa fanno zip e sorted (che ha un 
> parametro reversed) vedrai che quello che vuoi fare è ottenibile con 
> poche istruzioni:
>
>     >>> 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]
>     >>>
>     >>> ritardo_numeri_singoli_ordine_decrescente ,
>     numeri_singoli_in_ordine = zip(*sorted(zip(ritardo_numeri_singoli,
>     riepilogo_numeri_singoli), reverse=True))
>     >>>
>     >>> ritardo_numeri_singoli_ordine_decrescente
>     (55, 55, 53, 53, 52, 50, 49, 47, 45, 44, 41, 40, 39, 38, 34, 33,
>     32, 30, 29, 26, 25, 22, 22, 21, 20, 18, 13, 12, 11, 7, 6, 5, 4, 3,
>     2, 1, 0)
>     >>>
>     >>> numeri_singoli_in_ordine
>     (36, 10, 32, 12, 14, 26, 13, 11, 30, 21, 17, 24, 27, 15, 3, 23,
>     33, 8, 18, 22, 35, 9, 0, 29, 4, 2, 25, 16, 20, 5, 34, 19, 28, 31,
>     6, 7, 1)
>     >>>
>
>
> Ciao.
> Marco.


Grazie per il tuo tempo Marco. Scoprire che tutto il casino che ho 
scritto si può riassumere in una sola istruzione quasi mi demoralizza. 
Tuttavia, il risultato che ottengo con ciò che mi

hai suggerito, non è ciò che voglio. il primo numero della lista 
ritardo_numeri_singoli_in_ordine_decrescente è il numero 55 che nella 
lista ritardo_numeri_singoli aveva indice 10 e in corrispondenza

dell'indice 10 della lista riepilogo_numeri_singoli c'è il numero 10 che 
dovrebbe essere il primo numero presente nella lista numeri_singoli_in 
ordine. Il secondo 55 aveva indice 36 e quindi il numero

corrispondente con tale indice nella lista riepilogo_numeri_singoli (il 
36) dovrebbe essere il secondo numero presente nella nuova lista e così 
via. Quindi [10, 36, 12, 32 ....]

La tua soluzione mi rende invece un risultato diverso. Molto 
probabilmente l'intenzione di ciò che voglio ottenere è stata da me 
espressa poco chiaramente.

L'istruzione sort con reverse = True l'avevo usata anche io per l'ordine 
decrescente ma l'Istruzione zip è invece a me totalmente sconosciuta. 
Cercherò di capirci qualcosa.

E' comunque utilizzabile per ciò che mi serve? In caso affermativo 
vedere l'istruzione che rende il risultato corretto mi faciliterebbe 
molto a comprendere il suo funzionamento.

Se ti fosse possibile, sono certo ne troverei giovamento.

Grazie infinite, mi hai messo su una per me nuova strada.

(Lo sapevo che tu potevi avere la risposta in tasca ....)

>  Isidoro
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200430/a1ebf032/attachment-0001.html>


Maggiori informazioni sulla lista Python