[Python] Sintassi sconosciuta...
Federico Cerchiari
federicocerchiari a gmail.com
Mar 16 Ott 2018 14:51:10 CEST
Ciao,
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:
list_of_coordinates = [(2, 4, 5), (2, 4, 6), (2, 5, 7), (2, 5, 8)]
for (x, y, z) in list_of_coordinates:
print(x + 1)
l'alternativa, secondo me, è più illeggibile:
list_of_coordinates = [(2, 4, 5), (2, 4, 6), (2, 5, 7), (2, 5, 8)]
for coord in list_of_coordinates:
print(coord[0] + 1)
Federico
Il giorno mar 16 ott 2018 alle ore 14:24 Davide Brunato <brunato a sissa.it>
ha scritto:
> On 10/16/18 1:06 PM, Alessandro Dentella wrote:
> > mi sono accorto dopo tanti anni di uso di Python di non avere idea di
> > questa sintassi:
> >
> > [tmp_loc] = glob.glob(os.path.join(tmp_dest, '*'))
> >
> > che trovate usata qui:
> >
> > #L1740
> >
> > Che cosa fa? che senso ha usarla quando mi vengono in mente vari altri
> > modi di ottenere quello che (forse, penso) faccia.
> >
> > Soprattutto, quella riga st creandomi problemi...
> >
> > Chi mi sa illuminare?
> >
> Può servire ad estrarre da un iterabile/lista/tupla una sequenza di
> valori, generando un errore in caso di discordanza nel numero di
> elementi o se l'operando a destra non è un iterabile:
>
> >>> [a] = 1
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: 'int' object is not iterable
> >>> [a] = 1,
> >>> a
> 1
> >>> [a] = 1, 2
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> ValueError: too many values to unpack
> >>> [a] = []
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> ValueError: need more than 0 values to unpack
>
> Credo sia equivalente alla sintassi con parentesi tonde, o a quella con
> virgole, usata solitamente per il doppio assegnamento:
>
> >>> a, b = [4, 5]
> >>> a, b
> (4, 5)
> >>> a, = [6]
> >>> a
> 6
>
> Ciao
>
> Davide
> _______________________________________________
> 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/20181016/c691b01f/attachment-0001.html>
Maggiori informazioni sulla lista
Python