Thursday, December 26, 2024
Google search engine
HomeLanguagesPython – List XOR

Python – List XOR

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))


Output : 

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))


Output : 

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)

RELATED ARTICLES

Most Popular

Recent Comments