Python | Elementwise AND in tuples
Last Updated :
26 Apr, 2023
Sometimes, while working with records, we can have a problem in which we may need to perform mathematical bitwise AND operation across tuples. This problem can occur in day-day programming. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using zip() + generator expression The combination of above functions can be used to perform this task. In this, we perform the task of AND using generator expression and mapping index of each tuple is done by zip().
Python3
# Python3 code to demonstrate working of
# Elementwise AND in tuples
# using zip() + generator expression
# initialize tuples
test_tup1 = (10, 4, 6, 9)
test_tup2 = (5, 2, 3, 3)
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
# Elementwise AND in tuples
# using zip() + generator expression
res = tuple(ele1 & ele2 for ele1, ele2 in zip(test_tup1, test_tup2))
# printing result
print("The AND tuple : " + str(res))
Output : The original tuple 1 : (10, 4, 6, 9)
The original tuple 2 : (5, 2, 3, 3)
The AND tuple : (0, 0, 2, 1)
Time Complexity: O(n)
Auxiliary Space: O(1)
Method #2 : Using map() + iand The combination of above functionalities can also perform this task. In this, we perform the task of extending logic of AND using iand and mapping is done by map().
Python3
# Python3 code to demonstrate working of
# Elementwise AND in tuples
# using map() + iand
from operator import iand
# initialize tuples
test_tup1 = (10, 4, 6, 9)
test_tup2 = (5, 2, 3, 3)
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
# Elementwise AND in tuples
# using map() + iand
res = tuple(map(iand, test_tup1, test_tup2))
# printing result
print("The AND tuple : " + str(res))
Output : The original tuple 1 : (10, 4, 6, 9)
The original tuple 2 : (5, 2, 3, 3)
The AND tuple : (0, 0, 2, 1)
Method #3: Using numpy.bitwise_and
This approach uses the numpy library to perform the bitwise AND operation on the tuples element-wise. It converts the tuples to numpy arrays, and then uses the numpy.bitwise_and function to perform the operation.
Python3
# Python3 code to demonstrate working of
# Elementwise AND in tuples
# using numpy.bitwise_and
import numpy as np
# initialize tuples
test_tup1 = (10, 4, 6, 9)
test_tup2 = (5, 2, 3, 3)
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
# Elementwise AND in tuples
# using numpy.bitwise_and
res = tuple(np.bitwise_and(np.array(test_tup1), np.array(test_tup2)))
# printing result
print("The AND tuple : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy
Output:
The original tuple 1 : (10, 4, 6, 9)
The original tuple 2 : (5, 2, 3, 3)
The AND tuple : (0, 0, 2, 1)
This approach has time complexity of O(n) as it iterates through the tuples once, and the auxiliary space is O(n) as it creates 2 numpy arrays with n elements each.
Method 4 : using a list comprehension and bitwise operators.
steps for this approach:
- Initialize the input tuples.
- Use a list comprehension to perform elementwise AND operation on each pair of corresponding elements in the tuples using the bitwise & operator. The zip function is used to pair corresponding elements from both tuples.
- Convert the resulting list to a tuple using the tuple() function.
- Print the resulting tuple.
Python3
# Initialize input tuples
test_tup1 = (10, 4, 6, 9)
test_tup2 = (5, 2, 3, 3)
# Perform elementwise AND operation using a list comprehension and bitwise &
res = tuple(test_tup1[i] & test_tup2[i] for i in range(len(test_tup1)))
# Print the resulting tuple
print("The AND tuple: " + str(res))
OutputThe AND tuple: (0, 0, 2, 1)
Time complexity: O(n), where n is the length of the input tuple.
Auxiliary space: O(n), where n is the length of the input tuple, because we create a list to store the result of the elementwise AND operation. .
METHOD 5:Using For loop and Bitwise AND operator
APPROACH:
The given problem is to find the elementwise AND of corresponding elements in two tuples test_tup1 and test_tup2, and return a new tuple with the results. To solve this problem, we can use a for loop to iterate over the indices of the tuples, and use the bitwise AND operator to get the AND of the corresponding elements in the tuples. We append the results to a new tuple and_tuple, and finally return this tuple as the output. The time and space complexity of this algorithm is O(n), where n is the length of the tuples.
ALGORITHM:
1.Initialize an empty tuple and_tuple.
2.Use a for loop to iterate over the indices of test_tup1.
3.For each index i, use the bitwise AND operator to get the AND of the corresponding elements in test_tup1 and test_tup2, and append the result to and_tuple.
4.Convert the resulting list and_tuple to a tuple using the tuple() constructor.
5.Print the resulting tuple and_tuple.
Python3
test_tup1 = (10, 4, 6, 9)
test_tup2 = (5, 2, 3, 3)
and_tuple = ()
for i in range(len(test_tup1)):
and_tuple += ((test_tup1[i] & test_tup2[i]),)
print("The AND tuple:", and_tuple)
OutputThe AND tuple: (0, 0, 2, 1)
Time Complexity: O(n), where n is the length of the tuples test_tup1 and test_tup2. The for loop runs n times to iterate over the indices of the tuples.
Space Complexity: O(n), where n is the length of the tuples test_tup1 and test_tup2. The space used is for the tuple and_tuple, which has n elements.
Similar Reads
Python - Count elements in tuple list
Sometimes, while working with data in form of records, we can have a problem in which we need to find the count of all the records received. This is a very common application that can occur in Data Science domain. Letâs discuss certain ways in which this task can be performed. Method #1: Using len()
5 min read
Python - Elements frequency in Tuple
Given a Tuple, find the frequency of each element. Input : test_tup = (4, 5, 4, 5, 6, 6, 5) Output : {4: 2, 5: 3, 6: 2} Explanation : Frequency of 4 is 2 and so on.. Input : test_tup = (4, 5, 4, 5, 6, 6, 6) Output : {4: 2, 5: 2, 6: 3} Explanation : Frequency of 4 is 2 and so on.. Method #1 Using def
7 min read
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 w
4 min read
Python - Count elements in record tuple
Sometimes, while working with data in form of records, we can have a problem in which we need to find the total element counts of all the records received. This is a very common application that can occur in Data Science domain. Letâs discuss certain ways in which this task can be performed. Method
5 min read
Python - Tuple elements inversions
Sometimes, while programming, we have a problem in which we might need to perform certain bitwise operations among tuple elements. This is an essential utility as we come across bitwise operations many times. Letâs discuss certain ways in which this task can be performed. Method #1 : Using map() + l
3 min read
Python | N element incremental tuples
Sometimes, while working with data, we can have a problem in which we require to gather a data that is of the form of sequence of increasing element tuple with each tuple containing the element N times. Let's discuss certain ways in which this task can be performed. Method #1 : Using generator expre
5 min read
Python | Find Dissimilar Elements in Tuples
Sometimes, while working with tuples, we can have a problem in which we need dissimilar features of two records. This type of application can come in Data Science domain. Let's discuss certain ways in which this problem can be solved. Method #1 : Using set() + "^" operator This task can be performed
8 min read
Python - Element Index in Range Tuples
Sometimes, while working with Python data, we can have a problem in which we need to find the element position in continuous equi ranged tuples in list. This problem has applications in many domains including day-day programming and competitive programming. Let's discuss certain ways in which this t
7 min read
Python - Sum of tuple elements
Sometimes, while programming, we have a problem in which we might need to perform summation among tuple elements. This is an essential utility as we come across summation operations many times and tuples are immutable and hence required to be dealt with. Letâs discuss certain ways in which this task
6 min read
Python - Extract tuples having K digit elements
Given a list of tuples, extract all tuples having K digit elements. Input : test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (78, )], K = 2 Output : [(34, 55), (12, 45), (78,)] Explanation : All tuples have numbers with 2 digits. Input : test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (782,
6 min read