Q:

Swapping 1 with 0 and 0 with 1 in a Pythonic way

In some part of my Python program I have a val variable that can be 1 or 0. If it's 1 I must change to 0, if it's 0 I must change to 1.
How do you do it in a Pythonic way?
if val == 1:
    val = 0
elif val == 0:
    val = 1

it's too long!
I did:
swap = {0: 1, 1:0}

So I can use it:
swap[val]

Other ideas?

A:

This isn't pythonic, but it is language neutral. Often val = 1 - val is simplest.

A:

Since True == 1 and False == 0 in python,
you could just use var = not var
It will just swap it.

A:

The shortest approach is using the bitwise operator XOR.
If you want val to be reassigned:
val ^= 1

If you do not want val to be reassigned:
val ^ 1

