lista de tuplas desembalaje

idetyp:

Me sorprendió hoy por el siguiente código:

testcases = [([1, 1, 1], 2, 2)]

for a, b, c in testcases:
    print(a, b, c)

se imprime:

[1, 1, 1] 2 2

Me esperaba un error y pensé que íbamos a necesitar un segundo bucle de llegar a elementos de tuplas. Podría enyone explicarme cómo funciona? No entiendo cómo a, by cestán asignados. Solía Python 3.6. ¡Salud!

quamrana;

Echemos un vistazo a lo que tiene:

testcases = [([1, 1, 1], 2, 2)]

Esta es una lista. Del tamaño de una. Así testcases[0]es el único elemento que hay.

Por lo que este código:

for a, b, c in testcases:
    pass

es un bucle de longitud uno. Por lo que cada vez a través del bucle (que es sólo una vez), se obtiene el elemento: ([1, 1, 1], 2, 2)que es una tuple. Del tamaño de tres.

Por lo que el desembalaje: a,b,c = testcases[0]da:

a == [1, 1, 1]
b == 2
c == 2

que es lo que Usted ve.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=405963&siteId=1
Recomendado
Clasificación