Table of Contents
In this post, we will see how to convert 0 to 1 and 1 to 0 in Python.
Ways to convert 0 to 1 and 1 to 0 in Python
There are times when you need to convert 0 to 1 and 1 to 0.
For example: Flipping a bit in binary number.
There are lots of ways to convert 0 to 1 and 1 to 0 in Python. Let’s go through them.
Using Subtraction
This is one of easiest solution to swap 0 to 1 and vice versa. We can subtract i from 1
and assign it back to i.
1 2 3 4 5 |
i=0; i = 1-i; print(i); # Prints 1 |
Using XOR
You can use xor operator with 1 to convert 0 to 1 and 1 to 0 in Python.
1 2 3 4 5 |
i=0; i = i^1; print(i); # Prints 1 |
Using not operator
You can use not operator as below
1 2 3 4 5 |
i=1; i = int(not(i)) print(i); # Prints 0 |
Using lambda expression
You can use lambda expression as below:
1 2 3 4 5 |
f = lambda val: 0 if val else 1; print(f(0)); # print 1 print(f(1)); # print 0 |
Using addition and remainder operator
This is not better solution than subtraction or XOR.
You can add 1
to i and use % operator to find remainder and assign it back to i.
1 2 3 |
i = ( i + 1 ) % 2 |
Convert 1 to 0 and 0 to 1 in list
You can also apply above solution in a list to convert 0 to 1 and 1 to 0 in list in Python.
Here is an example to do it using xor operator.
1 2 3 4 5 6 7 8 9 |
list1 = [0,1,0,1,0]; print("List before flipping 0 and 1",list1); list1 = [i^1 for i in list1] ; #xor each element is the list print("List after flipping 0 and 1",list1); |
Output
1 2 3 |
Convert 1 to 0 and 0 to 1 in list |
You can do using it using other solutions as well. You just need to change condition in above highlighted line.
1 2 3 4 5 6 7 |
#Using subtraction list1 = [1-i for i in list1] ; #Using not operator list1 = [int((not i)) for i in list1] ; |
Convert 1 to 0 and 0 to 1 in numpy array
There are multiple ways to convert 0 to 1 and 1 to 0 in numpy array.
Using where with bitwise xor
We can use np.where
and applying bitwise xor
in case value is either 1 or 0.
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np a = np.array([[0,1,0,1], [1,0,0,1]]) print(a) print("============") a = np.where((a==0)|(a==1), a^1, a) print(a) |
Output
1 2 3 4 5 6 7 |
[[0 1 0 1] [1 0 0 1]] ============ [[1 0 1 0] [0 1 1 0]] |
Using bitwise operators
We can make use of bitwise operators to convert 0 to 1 and 1 to 0 in Python.
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np a = np.array([[0,1,0,1], [1,0,0,1]]) print(a) print("============") a = a^(a&1==a) print(a) |
Output
1 2 3 4 5 6 7 |
[[0 1 0 1] [1 0 0 1]] ============ [[1 0 1 0] [0 1 1 0]] |
That’s all about how to convert 0 to 1 and 1 to 0 in python.