Sometimes, while programming, we have a problem in which we might need to perform certain bitwise operations among list elements. This is an essential utility as we come across bitwise operations many times. Let’s discuss certain ways in which XOR can be performed.
Method #1 : Using reduce() + lambda + “^” operator The above functions can be combined to perform this task. We can employ reduce() to accumulate the result of XOR logic specified by the lambda function. Works only with Python2.
Python
# Python code to demonstrate working of # List XOR # Using reduce() + lambda + "^" operator # initializing list test_list = [ 4 , 6 , 2 , 3 , 8 , 9 ] # printing original list print ("The original list is : " + str (test_list)) # List XOR # Using reduce() + lambda + "^" operator res = reduce ( lambda x, y: x ^ y, test_list) # printing result print ("The Bitwise XOR of list elements are : " + str (res)) |
The original list is : [4, 6, 2, 3, 8, 9] The Bitwise XOR of list elements are : 2
Time Complexity: O(n) where n is the number of elements in the list “test_list”.reduce() + lambda + “^” operator performs n number of operations.
Auxiliary Space: O(1), constant extra space is required
Method #2 : Using reduce() + operator.ixor This task can also be performed using this method. In this the task performed by lambda function in above method is performed using ior function for cumulative XOR operation. Works with Python2 only.
Python
# Python code to demonstrate working of # List XOR # Using reduce() + operator.ixor from operator import ixor # initializing list test_list = [ 4 , 6 , 2 , 3 , 8 , 9 ] # printing original list print ("The original list is : " + str (test_list)) # List XOR # Using reduce() + operator.ixor res = reduce (ixor, test_list) # printing result print ("The Bitwise XOR of list elements are : " + str (res)) |
The original list is : [4, 6, 2, 3, 8, 9] The Bitwise XOR of list elements are : 2
Time Complexity: O(n), where n is the length of the input list. This is because we’re using reduce() + operator.ixor which has a time complexity of O(n) in the worst case.
Auxiliary Space: O(1), as we’re using constant additional space
Method #3 : Using numpy
This task can also be performed using numpy module which provides the bitwise_xor() function to perform this particular task.
Note: Install numpy module using command “pip install numpy”
Python3
# Python code to demonstrate working of # List XOR # Using numpy.bitwise_xor import numpy # initializing list test_list = [ 4 , 6 , 2 , 3 , 8 , 9 ] # printing original list print ( "The original list is : " + str (test_list)) # List XOR # Using numpy.bitwise_xor res = numpy.bitwise_xor. reduce (test_list) # printing result print ( "The Bitwise XOR of list elements are : " + str (res)) #This code is contributed by Edula Vinay Kumar Reddy |
Output :
The original list is : [4, 6, 2, 3, 8, 9]
The Bitwise XOR of list elements are : 2
Time Complexity: O(n)
Space Complexity: O(1)