Je n'arrive pas à comprendre pourquoi les éléments suivants ne peuvent pas être décompactés dans la ligne d'en-tête d'une boucle for
.Décompresser une structure de séquence en utilisant une instruction de boucle `for` en Python
Étant donné que:
>>> (a,b),c = (1,2),3
>>> a
1
>>> b
2
>>> c
3
Pourquoi quand je le fais alors que je reçois une erreur ?:
for (a,b),c in [(1,2),3]:
... print(a,b,c)
Je suis conscient de la façon de le faire fonctionner, comme ce qui suit me donne la résultat désiré:
>>> for (a,b),c in [((1,2),3)]:
... print(a,b,c)
1 2 3
Mais pourquoi une parenthèse supplémentaire entoure-t-elle l'objet original dans la ligne d'en-tête de for
boucle nécessaire pour atteindre cette sortie? Etant donné que toute séquence peut être décompressée, [(1,2), 3]
est syntaxiquement correcte en tant que séquence de liste et devrait théoriquement pouvoir être affectée aux variables cibles (a,b),c
. Alors pourquoi n'est-ce pas le cas et pourquoi dois-je joindre la séquence avec une parenthèse supplémentaire?
Une certaine clarté autour de ceci serait grandement appréciée.
Une réponse claire et concise, merci! – seeker