2016-08-25 1 views
1

Je me demande pourquoi la variable last est 5 quand je faisordre de déballage * args en Python

first, *rest, last = 1,2,3,4,5 

Je pensais que la cession va de gauche à droite, ainsi *rest sera [2,3,4,5], mais il est actuellement [2,3,4] et je pensais que cette dernière sera vide, ou ce code provoquera une erreur, mais il fonctionne suprisingly, mais je ne comprends pas pourquoi

Répondre

0

Juste parce que c'est la fonctionnalité de déballage.

first et last ne sont que des variables, quand *rest sont des arguments, donc ils obtiennent tout entre la valeur first et last dans tuple (1,2,3,4,5).

Si vous voulez vous faire écrit:

[2,3,4,5] 

alors utilisez simplement:

first, *args = 1,2,3,4,5 
# first --> 1 
# args --> [2,3,4,5]