BYU logo Computer Science

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

lucy and emma both point to 'blue backpack'

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

lucy points to 'blue backpack', emma points to 'red backpack

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.