<div dir="ltr">Ciao,<div>la sintassi è la stessa dell'unpacking, ma al contrario si tratta di packing... io generalmente uso quella sintassi nei cicli for quando mi capita di iterare su tuple:<div><br></div><div>list_of_coordinates = [(2, 4, 5), (2, 4, 6), (2, 5, 7), (2, 5, 8)]</div><div>for (x, y, z) in list_of_coordinates:<br></div><div>            print(x + 1)</div><div><br></div><div>l'alternativa, secondo me,  è più illeggibile:</div><div><div>list_of_coordinates = [(2, 4, 5), (2, 4, 6), (2, 5, 7), (2, 5, 8)]</div><div>for coord in list_of_coordinates:<br></div><div>            print(coord[0] + 1)</div></div><div><br></div><div>Federico</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">Il giorno mar 16 ott 2018 alle ore 14:24 Davide Brunato <<a href="mailto:brunato@sissa.it">brunato@sissa.it</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 10/16/18 1:06 PM, Alessandro Dentella wrote:<br>
> mi sono accorto dopo tanti anni di uso di Python di non avere idea di<br>
> questa sintassi:<br>
> <br>
>   [tmp_loc] = glob.glob(os.path.join(tmp_dest, '*'))<br>
> <br>
> che trovate usata qui:<br>
> <br>
>   #L1740<br>
> <br>
> Che cosa fa? che senso ha usarla quando mi vengono in mente vari altri<br>
> modi di ottenere quello che (forse, penso) faccia.<br>
> <br>
> Soprattutto, quella riga st creandomi problemi...<br>
> <br>
> Chi mi sa illuminare?<br>
> <br>
Può servire ad estrarre da un iterabile/lista/tupla una sequenza di<br>
valori, generando un errore in caso di discordanza nel numero di<br>
elementi o se l'operando a destra non è un iterabile:<br>
<br>
  >>> [a] = 1<br>
  Traceback (most recent call last):<br>
    File "<stdin>", line 1, in <module><br>
  TypeError: 'int' object is not iterable<br>
  >>> [a] = 1,<br>
  >>> a<br>
  1<br>
  >>> [a] = 1, 2<br>
  Traceback (most recent call last):<br>
    File "<stdin>", line 1, in <module><br>
  ValueError: too many values to unpack<br>
  >>> [a] = []<br>
  Traceback (most recent call last):<br>
    File "<stdin>", line 1, in <module><br>
  ValueError: need more than 0 values to unpack<br>
<br>
Credo sia equivalente alla sintassi con parentesi tonde, o a quella con<br>
virgole, usata solitamente per il doppio assegnamento:<br>
<br>
  >>> a, b = [4, 5]<br>
  >>> a, b<br>
  (4, 5)<br>
  >>> a, = [6]<br>
  >>> a<br>
  6<br>
<br>
Ciao<br>
<br>
Davide<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="https://lists.python.it/mailman/listinfo/python" rel="noreferrer" target="_blank">https://lists.python.it/mailman/listinfo/python</a><br>
</blockquote></div>