Swapping values
Consider this problem — two students want to swap backpacks. In real life, this is pretty easy to do. But when we are swapping values of two variables, things are a little tricky. To explain, consider these rules:
- two students need to swap backpacks
- they can only hold one backpack at a time
What happens if we try to do a simple swap?
emma = 'blue backpack'
lucy = 'red backpack'
lucy = emma
emma = lucy
When we set lucy = emma
, this makes lucy
point to ‘blue backpack’ and now
neither variable is pointing to ‘red backpack’. Setting emma = lucy
means
emma
points to the same thing as lucy
— the blue backpack!
Solving the swap problem
To solve this problem, we need the help of a ‘third person’ or a third variable to hold one of the backpacks:
temp = lucy
lucy = emma
emma = temp
The Python way of swapping
The swapping solution above is used in many programming languages. In Python, we can use tuple unpacking to swap two variables:
emma, lucy = lucy, emma
This creates a tuple (lucy, emma)
, and then unpacks the tuple into
emma, lucy
. Python takes care of any temporary variables it uses while it
makes this swap.