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
, b
y c
está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.