How to use XOR in Python
XOR, short for exclusive OR, is a logical operation that takes two operands and returns a boolean value of True if and only if exactly one of the operands is True.
In Python, we can perform the XOR operation on two or more values using a variety of methods/operators, including the ^ operator. In the following sections we'll see this operator and a number of different functions that can help us achieve the same XOR result, some of which are better for certain use-cases than others.
Using the ^ Operator
Here is an example of using the ^ operator to perform XOR on two boolean values:
>>> True ^ False
True
>>> False ^ False
False
>>> True ^ True
False
As you can see, when exactly one of the operands is True, the XOR operation returns True. Otherwise, it returns False.
Using the xor Function
We can also use the xor function from the operator module to perform XOR on two values. Here is an example:
>>> from operator import xor
>>> xor(True, False)
True
>>> xor(False, False)
False
>>> xor(True, True)
False
As you can see, the xor function works in the same way as the ^ operator, but it provides an alternative syntax for performing XOR operations in Python.
Using Logical and and or Operators
In addition to the ^ operator and the operator.xor function, we can also use the and and or operators to achieve the same result as XOR. This can be done using the following logic:
xor = lambda a, b: (a and not b) or (not a and b)
Here is an example of using this logic to perform XOR in Python:
>>> (True and not False) or (not True and False)
True
>>> (False and not False) or (not False and False)
False
>>> (True and not True) or (not True and True)
False
As you can see, this method produces the same result as the ^ operator and the xor function. However, it may be less efficient because it involves more operations.
Using the functools.reduce Function
Another way to perform XOR in Python is to use the functools.reduce function, which allows us to apply a binary operation to a sequence of values. Here is an example of using reduce to perform XOR on a list of boolean values:
>>> from functools import reduce
>>> from operator import xor
>>> reduce(xor, [True, False, False, True])
False
As you can see, the reduce function applies the xor function to each element of the list, starting from the first two elements and then continuing with the result of the previous operation and the next element in the list. In this case, the final result is False, because the number of True values in the list is even.
One of the advantages of this is that we can more easily use it to perform XOR on an arbitrary number of values.
Conclusion
In this article, we have seen four different ways to perform XOR in Python: using the ^ operator, using logical and/or operators, using the xor function from the operator module, and using the functools.reduce function. All four ways of doing this provide a simple and concise syntax for performing XOR operations in Python.

