Comment échanger deux variables en Python (sans variables temporaires)
Apprenez à échanger deux variables en Python. Comprenez l'emballage et le déballage de tuples pythoniques et comparez-les à l'échange de variables temporaires traditionnel.
Aperçu
L'échange des valeurs de deux variables est une opération classique utilisée dans les algorithmes de tri, les réaffectations de variables et les rotations de valeurs. Dans les langages de programmation de niveau inférieur comme C, C++ ou Java, l'échange nécessite de déclarer une variable temporaire pour contenir une valeur afin qu'elle ne soit pas écrasée lors de l'affectation.
En Python, vous pouvez réaliser cet échange en une seule ligne sans utiliser de stockage temporaire : `a, b = b, a`. Cette approche élégante est non seulement plus propre mais également hautement optimisée. Sous le capot, Python utilise l'emballage et le déballage des tuples pour effectuer l'échange en toute sécurité.
Lorsque Python évalue « a, b = b, a », il construit d'abord un tuple contenant les valeurs « (b, a) » en mémoire (package de tuple). Ensuite, il décompresse ce tuple dans les variables du côté gauche, en attribuant l'ancienne valeur de « b » à « a » et l'ancienne valeur de « a » à « b » (décompression du tuple). Cela garantit que les deux variables sont mises à jour simultanément sans collisions de données.
Sortie de code et d'exécution
Ce code montre l'échange de deux variables en Python à l'aide du déballage de tuple et le compare à la méthode traditionnelle des variables temporaires.
x = 10
y = 20
print(f"Original: x = {x}, y = {y}")
# 1. The Pythonic Way (Tuple unpacking)
x, y = y, x
print(f"Pythonic Swap: x = {x}, y = {y}")
# 2. The Traditional Way (Using a temporary variable)
temp = x
x = y
y = temp
print(f"Traditional Swap: x = {x}, y = {y}")Original: x = 10, y = 20
Pythonic Swap: x = 20, y = 10
Traditional Swap: x = 10, y = 20Mise en œuvre étape par étape
- Placez les variables dont vous souhaitez recevoir les valeurs sur le côté gauche de l'affectation : variable1, variable2.
- Placez les variables contenant les valeurs sources sur le côté droit : variable2, variable1.
- Utilisez l'opérateur d'affectation (=) pour déclencher l'échange automatisé de compression et de décompression de tuples de Python.
Foire aux questions
L'échange de déballage de tuple est-il à l'abri des conditions de concurrence ?
Dans un environnement monothread, c'est complètement atomique car l'expression de droite est entièrement évaluée en tuple avant le début de toute affectation aux variables de gauche.
Puis-je échanger plus de deux variables simultanément ?
Oui ! Vous pouvez échanger n'importe quel nombre de variables en utilisant la même syntaxe de tuple. Par exemple, a, b, c = b, c, a décale les valeurs vers la gauche.
Sujets connexes
Apprenez les meilleures techniques de formatage de chaînes en Python. Comparez les f-strings modernes, le format() et le formatage en pourcentage avec des exemples de code.
Comment vérifier le type de données en PythonDécouvrez comment vérifier les types de données en Python. Comprenez quand utiliser type() vs isinstance(), gérez les classes personnalisées et écrivez des validations de vérification de type sécurisées.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Variables et types de données Python expliqués
Comprendre les variables Python et les types de données de base (chaînes, entiers, flottants, booléens). Un guide complet pour débutants sur l'affectation de mémoire en Python.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.