Given two variables x and y, write a Python program to swap their values. Let’s see different methods in Python to do this task.
Method 1: Using Naive approach
The most naive approach is to store the value of one variable(say x) in a temporary variable, then assigning the variable x with the value of variable y. Finally, assign the variable y with the value of the temporary variable.
Python3
# Python program to demonstrate # swapping of two variables x = 10 y = 50 # Swapping of two variables # Using third variable temp = x x = y y = temp print ( "Value of x:" , x) print ( "Value of y:" , y) |
Value of x: 50 Value of y: 10
Method 2: Using comma operator
Using the comma operator the value of variables can be swapped without using a third variable.
Python3
# Python program to demonstrate # swapping of two variables x = 10 y = 50 # Swapping of two variables # without using third variable x, y = y, x print ( "Value of x:" , x) print ( "Value of y:" , y) |
Value of x: 50 Value of y: 10
Method 3: Using XOR
The bitwise XOR operator can be used to swap two variables. The XOR of two numbers x and y returns a number which has all the bits as 1 wherever bits of x and y differ. For example XOR of 10 (In Binary 1010) and 5 (In Binary 0101) is 1111 and XOR of 7 (0111) and 5 (0101) is (0010).
Python3
# Python program to demonstrate # Swapping of two variables x = 10 y = 50 # Swapping using xor x = x ^ y y = x ^ y x = x ^ y print ( "Value of x:" , x) print ( "Value of y:" , y) |
Value of x: 50 Value of y: 10
Method 4: Using arithmetic operators we can perform swapping in two ways.
- Using addition and subtraction operator :
The idea is to get sum in one of the two given numbers. The numbers can then be swapped using the sum and subtraction from sum.
Python3
# Python program to demonstrate # swapping of two variables x = 10 y = 50 # Swapping of two variables # using arithmetic operations x = x + y y = x - y x = x - y print ( "Value of x:" , x) print ( "Value of y:" , y) |
Value of x: 50 Value of y: 10
- Using multiplication and division operator :
The idea is to get multiplication of the two given numbers. The numbers can then be calculated by using the division.
Python3
# Python program to demonstrate # swapping of two variables x = 10 y = 50 # Swapping of two numbers # Using multiplication operator x = x * y y = x / y x = x / y print ( "Value of x : " , x) print ( "Value of y : " , y) |
Value of x : 50.0 Value of y : 10.0
Method 5: using Bitwise addition and subtraction for swapping.
Python3
#Python program to demonstrate #swapping of two numbers a = 5 b = 1 a = (a & b) + (a | b) b = a + (~b) + 1 a = a + (~b) + 1 print ( "a after swapping: " , a) print ( "b after swapping: " , b) |
a after swapping: 1 b after swapping: 5