Déballage, déballage étendu et déballage étendu imbriqué
Le déballage est un moyen pratique d'attribuer plusieurs valeurs d'un itérable à des variables individuelles en une seule déclaration. Python prend en charge trois types de déballage : le déballage simple, le déballage étendu et le déballage étendu imbriqué.
Déballage simple
- Attribue les éléments en séquence aux variables cibles
- Ne prend pas en charge les omissions ou les répétitions arbitraires
- Exemple : a, b = 1, 2
Déballage étendu
- Utilise l'opérateur * pour collecter les éléments restants dans une liste
- Peut omettre ou répéter des éléments dans la cible
- Exemple : a, *b = 1, 2, 3, 4, 5
Déballage étendu imbriqué
- Combine le déballage étendu avec des séquences imbriquées
- Attribue des valeurs à partir de la séquence imbriquée aux variables cibles
- Exemple : *(a, b) = 1, 2
Pour déduire correctement le résultat de ces expressions à la main, suivez ces étapes :
1. Convertir des itérables en tuples :
- Supposons que tous les itérables sont représentés sous forme de tuples, même s'ils ne sont pas explicitement écrits avec des parenthèses.
2. Appliquer des règles de déballage étendues :
- Les variables préfixées par * se voient attribuer une liste d'éléments restants.
- Les variables sans * se voient attribuer des éléments individuels.
3. Résoudre l'ambiguïté dans le déballage imbriqué :
- Si une variable se voit attribuer une séquence imbriquée, elle sera décompressée en ses éléments individuels.
Exemples :
1. (a, b), c = 1, 2, 3
- Converti : ((a, b), c) = (1, 2, 3)
- Déballé : a = 1, b = 2, c = 3
2. (a, b), c, = [1, 2], 'this'
- Converti : ((a, b), c) = ((1, 2), 'this')
- Déballé : a = 1, b = 2, c = 'this'
Remarques :
- Plusieurs opérateurs * dans une même lvalue ne sont pas autorisés.
- Les cibles doivent être dans des listes ou des tuples.
- Vide Les itérables ne peuvent pas être attribués à des cibles *.
- Le déballage imbriqué peut conduire à des résultats ambigus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!