<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Il 30/04/2020 19:53, Marco Beri ha
      scritto:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAN1J36gTcwNpyq4=3ywnty=RZZEcPnjMxts1VNYTfbi1f1gMcQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">On Thu, Apr 30, 2020 at 7:45 PM Carpediem <<a
            href="mailto:i.carpediem@tiscali.it" moz-do-not-send="true">i.carpediem@tiscali.it</a>>
          wrote:</div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <div>Il 30/04/2020 18:54, Marco Beri ha scritto:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div dir="ltr">On Thu, Apr 30, 2020 at 6:18 PM
                    Carpediem <<a
                      href="mailto:i.carpediem@tiscali.it"
                      target="_blank" moz-do-not-send="true">i.carpediem@tiscali.it</a>>
                    wrote:<br>
                  </div>
                  <div class="gmail_quote">
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">Grazie
                      Alessandro. Mi hai fatto notare l'assenza
                      dell'istruzione break e <br>
                      ora che l'ho inserita, il programma termina la sua
                      esecuzione.<br>
                      <br>
                      Purtroppo, non mi restituisce ciò che mi aspetto e
                      continuo a non capire <br>
                      perchè. L'ordinamento che cerco, è in<br>
                      <br>
                      relazione con l'indice dei numeri della lista di
                      riferimento e <br>
                      utilizzare il metodo sorted() per quel che ho
                      visto, o compreso, non mi <br>
                      è di aiuto.<br>
                      <br>
                      Partendo da questo:<br>
                      <br>
                      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
                      15, 16, 17, 18, 19, <br>
                      20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
                      32, 33, 34, 35, 36]<br>
                      <br>
                      [22, 0, 18, 34, 20, 7, 2, 1, 30, 22, 55, 47, 53,
                      49, 52, 38, 12, 41, 29, <br>
                      5, 11, 44, 26, 33, 40, 13, 50, 39, 4, 21, 45, 3,
                      53, 32, 6, 25, 55]<br>
                      <br>
                      volevo ottenere questo:<br>
                      <br>
                      [10, 36, 12, 32, .............]<br>
                      <br>
                      [55, 55, 53, 53, 52, ......]<br>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>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:</div>
                    <div><br>
                    </div>
                  </div>
                  <blockquote style="margin:0px 0px 0px
                    40px;border:none;padding:0px">
                    <div class="gmail_quote"><font face="monospace">>>>
                        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,<br>
                        ...                             25, 26, 27, 28,
                        29, 30, 31, 32, 33, 34, 35, 36]<br>
                        >>> <br>
                        >>> 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,<br>
                        ...                           45, 3, 53, 32, 6,
                        25, 55]<br>
                        >>> <br>
                      </font>
                      <div><font face="monospace">>>>
                          ritardo_numeri_singoli_ordine_decrescente ,
                          numeri_singoli_in_ordine =
                          zip(*sorted(zip(ritardo_numeri_singoli,
                          riepilogo_numeri_singoli), reverse=True))<br>
                        </font><font face="monospace">>>> <br>
                        </font><font face="monospace">>>>
                          ritardo_numeri_singoli_ordine_decrescente<br>
                          (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)<br>
                        </font><font face="monospace">>>> <br>
                        </font><font face="monospace">>>>
                          numeri_singoli_in_ordine<br>
                          (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)</font><br>
                      </div>
                      <div><font face="monospace">>>> <br>
                        </font></div>
                    </div>
                  </blockquote>
                  <div class="gmail_quote">
                    <div><br>
                    </div>
                    <div>Ciao.</div>
                    <div>Marco.</div>
                  </div>
                </div>
              </blockquote>
              <p><br>
              </p>
              <p>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</p>
              <p>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</p>
              <p>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</p>
              <p>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 ....]</p>
              <p>La tua soluzione mi rende invece un risultato diverso.
                Molto probabilmente l'intenzione di ciò che voglio
                ottenere è stata da me espressa poco chiaramente. <br>
              </p>
              <p>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.</p>
              <p>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.</p>
              <p>Se ti fosse possibile, sono certo ne troverei
                giovamento.<br>
              </p>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>La funzione zip fa questo:</div>
          <div><br>
          </div>
        </div>
        <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
          <div class="gmail_quote">
            <div><font face="monospace">>>> list(zip([1,2,3],
                ['a', 'b', 'c']))</font></div>
          </div>
          <div class="gmail_quote">
            <div><font face="monospace">[(1, 'a'), (2, 'b'), (3, 'c')]</font></div>
          </div>
        </blockquote>
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>Passandogli un parametro con l'* in pratica gli facciamo
            fare il contrario: </div>
          <div><br>
          </div>
        </div>
        <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
          <div class="gmail_quote">
            <div><font face="monospace">>>> list(zip(*[(1,
                'a'), (2, 'b'), (3, 'c')]))</font></div>
          </div>
          <div class="gmail_quote">
            <div><font face="monospace">[(1, 2, 3), ('a', 'b', 'c')]</font></div>
          </div>
        </blockquote>
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>Ma nel tuo caso lei fa il suo dovere, dobbiamo invece
            modificare il comportamento della funzione sorted:</div>
          <div><br>
          </div>
        </div>
        <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
          <div class="gmail_quote">
            <div><font face="monospace">>>>
                ritardo_numeri_singoli_ordine_decrescente ,
                numeri_singoli_in_ordine =
                zip(*sorted(zip(ritardo_numeri_singoli,
                riepilogo_numeri_singoli), <span
                  style="background-color:rgb(255,255,0)">key=lambda
                  x:(x[0],-x[1]), reverse=True</span>))</font></div>
          </div>
          <div class="gmail_quote">
            <div><font face="monospace">>>>
                ritardo_numeri_singoli_ordine_decrescente</font></div>
          </div>
          <div class="gmail_quote">
            <div><font face="monospace">(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)</font></div>
          </div>
          <div class="gmail_quote">
            <div><font face="monospace">>>>
                numeri_singoli_in_ordine</font></div>
          </div>
          <div class="gmail_quote">
            <div><font face="monospace">(10, 36, 12, 32, 14, 26, 13, 11,
                30, 21, 17, 24, 27, 15, 3, 23, 33, 8, 18, 22, 35, 0, 9,
                29, 4, 2, 25, 16, 20, 5, 34, 19, 28, 31, 6, 7, 1)</font></div>
          </div>
        </blockquote>
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>In pratica diciamo alla funzione sorted di usare per
            l'ordinamento inverso il primo numero così com'è (il
            ritardo) e il secondo numero al contrario.<br>
          </div>
          <div>In alternativa potevamo dirgli di non fare l'ordine
            inverso e invertire il primo, il risultato non cambia:</div>
          <div><br>
          </div>
          <div>
            <blockquote style="margin:0px 0px 0px
              40px;border:none;padding:0px">
              <div class="gmail_quote"><font face="monospace">>>>
                  ritardo_numeri_singoli_ordine_decrescente ,
                  numeri_singoli_in_ordine =
                  zip(*sorted(zip(ritardo_numeri_singoli,
                  riepilogo_numeri_singoli), <span
                    style="background-color:rgb(255,255,0)">key=lambda
                    x:(-x[0],x[1])</span>))<br>
                  >>> ritardo_numeri_singoli_ordine_decrescente<br>
                  (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)<br>
                  >>> numeri_singoli_in_ordine<br>
                  (10, 36, 12, 32, 14, 26, 13, 11, 30, 21, 17, 24, 27,
                  15, 3, 23, 33, 8, 18, 22, 35, 0, 9, 29, 4, 2, 25, 16,
                  20, 5, 34, 19, 28, 31, 6, 7, 1)</font><br>
              </div>
            </blockquote>
          </div>
          <div><br>
          </div>
          <div>Ok, confesso che è un po' complicato (le funzioni lambda
            sono un pochino avanzate), però anche quello che vuoi fare
            tu lo è.<br>
          </div>
          <div><br>
          </div>
          <div>Ciao.<br>
            Marco.</div>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
    <p>Punto 1) Non avrei mai risolto il problema da solo</p>
    <p>Punto 2)  La soluzione è bellissima e ha un fascino di mistero
      come certe belle donne</p>
    <p>Punto 3) Come certe belle donne è tanto complicata che a volte
      dici: non so cosa le passa per la testa</p>
    <p>Punto 4) In questo caso dico: è talmente complicata che non so
      come farà ad entrarmi in testa</p>
    <p>Punto 5) ho cercato in rete info sulla funzione zip ma al momento
      non ho trovato nulla di spiegato in modo semplice ma comunque
      approfondito: hai riferimenti?<br>
    </p>
    <p>Punto 6) Addirittura due soluzioni diverse: geniale ed
      invidiabile. Una riga di codice contro le circa 30 da me
      utilizzate!!!!<br>
    </p>
    <p>Punto 7) nel guardare la tua prima soluzione (quella che non
      combaciava con ciò che volevo ottenere) forse ho compreso come in
      quel caso ha lavorato la funzione zip!!! farò delle prove con
      altri dati tentando di anticiparne su carta il risultato</p>
    <p>Punto 8) Ma dove hai imparato? Avevo immaginato che mi ero
      infilato in qualcosa di complicato e la tua conferma un poco mi
      consola</p>
    <p>Punto 9) La soluzione che stavo sperimentando mi resta un mistero
      sul suo non fuzionamento anche perchè all'inizio parte bene e poi
      si perde. Sempre per imparare, ma dov'era l'errore?</p>
    <p>Punto 10) Cento volte Grazie.</p>
    <p>Isidoro<br>
    </p>
    <blockquote type="cite"
cite="mid:CAN1J36gTcwNpyq4=3ywnty=RZZEcPnjMxts1VNYTfbi1f1gMcQ@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div><br>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Python mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Python@lists.python.it">Python@lists.python.it</a>
<a class="moz-txt-link-freetext" href="https://lists.python.it/mailman/listinfo/python">https://lists.python.it/mailman/listinfo/python</a>
</pre>
    </blockquote>
  </body>
</html>