Sunday, November 17, 2024
Google search engine
HomeLanguagesPython – AND operation between Tuples

Python – AND operation between Tuples

Sometimes, while working with records, we might have a common problem of performing AND operation contents of one tuple with corresponding index of other tuple. This has application in almost all the domains in which we work with tuple records especially Data Science. Let’s discuss certain ways in which this task can be performed. 

Method #1 : Using map() + lambda Combination of above functionalities can solve the problem for us. In this, we compute the AND using lambda functions and extend the logic to keys using map(). 

Python3




# Python3 code to demonstrate working of
# Cross Tuple AND operation
# using map() + lambda
 
# initialize tuples
test_tup1 = (10, 4, 5)
test_tup2 = (2, 5, 18)
 
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
 
# Cross Tuple AND operation
# using map() + lambda
res = tuple(map(lambda i, j: i & j, test_tup1, test_tup2))
 
# printing result
print("Resultant tuple after AND operation : " + str(res))


Output : 

The original tuple 1 : (10, 4, 5)
The original tuple 2 : (2, 5, 18)
Resultant tuple after AND operation : (2, 4, 0)

Method #2 : Using map() + iand() The combination of above functions can help us achieve this task. In this, we first extend the logic to all using map() and then perform AND of each index using iand(). 

Python3




# Python3 code to demonstrate working of
# Cross Tuple AND operation
# using map() + iand()
import operator
 
# initialize tuples
test_tup1 = (10, 4, 5)
test_tup2 = (2, 5, 18)
 
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
 
# Cross Tuple AND operation
# using map() + iand()
res = tuple(map(operator.iand, test_tup1, test_tup2))
 
# printing result
print("Resultant tuple after AND operation : " + str(res))


Output : 

The original tuple 1 : (10, 4, 5)
The original tuple 2 : (2, 5, 18)
Resultant tuple after AND operation : (2, 4, 0)

Method #3: Using List comprehension

This approach is similar to the previous ones but uses a more concise and readable syntax using list comprehension.

Python3




# Python3 code to demonstrate working of
# Cross Tuple AND operation
# using List comprehension
 
# initialize tuples
test_tup1 = (10, 4, 5)
test_tup2 = (2, 5, 18)
   
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
   
# Cross Tuple AND operation
# using List comprehension
res = tuple([i & j for i,j in zip(test_tup1, test_tup2)])
   
# printing result
print("Resultant tuple after AND operation : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original tuple 1 : (10, 4, 5)
The original tuple 2 : (2, 5, 18)
Resultant tuple after AND operation : (2, 4, 0)

Time complexity: O(n) where n is the length of the tuples
Auxiliary Space: O(n) as we are creating a new tuple of the same size as the input tuples

Method #4: Using zip():

Python3




test_tup1 = (10, 4, 5)
test_tup2 = (2, 5, 18)
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
res = tuple([i & j for i, j in zip(test_tup1, test_tup2)])
print(res)
#This code is contributed by Jyothi pinjala


Output

The original tuple 1 : (10, 4, 5)
The original tuple 2 : (2, 5, 18)
(2, 4, 0)

Time complexity: O(n) 
Space complexity: O(n) 

Method #5: Using a for loop

Step-by-step approach:

  • Initialize an empty list called result.
  • Iterate over the indices of the input tuples using the range() function.
  • Compute the bitwise AND of the corresponding elements of the input tuples using the & operator.
  • Append the result to the result list.
  • Convert the result list to a tuple using the tuple() function.
  • Return the tuple.

Python3




def bitwise_and_tuples(tup1, tup2):
    result = []
    for i in range(len(tup1)):
        result.append(tup1[i] & tup2[i])
    return tuple(result)
test_tup1 = (10, 4, 5)
test_tup2 = (2, 5, 18)
res = bitwise_and_tuples(test_tup1, test_tup2)
print(res)


Output

(2, 4, 0)

Time complexity: O(n), where n is the length of the input tuples.
Auxiliary space: O(n), where n is the length of the input tuples.

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments