Open In App

Python | Elementwise AND in tuples

Last Updated : 26 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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:

  1. Initialize the input tuples.
  2. 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.
  3. Convert the resulting list to a tuple using the tuple() function.
  4. 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))


Output

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


Output

The 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 | Remove duplicate tuples from list of tuples
Given a list of tuples, Write a Python program to remove all the duplicated tuples from the given list. Examples: Input : [(1, 2), (5, 7), (3, 6), (1, 2)] Output : [(1, 2), (5, 7), (3, 6)] Input : [('a', 'z'), ('a', 'x'), ('z', 'x'), ('a', 'x'), ('z', 'x')] Output : [('a', 'z'), ('a', 'x'), ('z', 'x')] Method #1 : List comprehension This is a naive
5 min read
Python | Find the tuples containing the given element from a list of tuples
Given a list of tuples, the task is to find all those tuples containing the given element, say n. Examples: Input: n = 11, list = [(11, 22), (33, 55), (55, 77), (11, 44)] Output: [(11, 22), (11, 44)] Input: n = 3, list = [(14, 3),(23, 41),(33, 62),(1, 3),(3, 3)] Output: [(14, 3), (1, 3), (3, 3)] There are multiple ways we can find the tuples contai
6 min read
Python | Remove tuples from list of tuples if greater than n
Given a list of a tuple, the task is to remove all the tuples from list, if it's greater than n (say 100). Let's discuss a few methods for the same. Method #1: Using lambda STEPS: Initialize a list of tuples: ini_tuple = [('b', 100), ('c', 200), ('c', 45), ('d', 876), ('e', 75)]Print the initial list: print("intial_list", str(ini_tuple))Define the
6 min read
Python | Remove tuples having duplicate first value from given list of tuples
Given a list of tuples, the task is to remove all tuples having duplicate first values from the given list of tuples. Examples: Input: [(12.121, 'Tuple1'), (12.121, 'Tuple2'), (12.121, 'Tuple3'), (923232.2323, 'Tuple4')] Output: [(12.121, 'Tuple1'), (923232.2323, 'Tuple4')]Input: [('Tuple1', 121), ('Tuple2', 125), ('Tuple1', 135), ('Tuple4', 478)]
7 min read
Python | Count tuples occurrence in list of tuples
Many a time while developing web and desktop products in Python, we use nested lists and have several queries about how to find the count of unique tuples. Let us see how to get the count of unique tuples in the given list of tuples. Below are some ways to achieve the above task. Method #1: Using Iteration C/C++ Code # Python code to count unique #
5 min read
Python | Combining tuples in list of tuples
Sometimes, we might have to perform certain problems related to tuples in which we need to segregate the tuple elements to combine with each element of complex tuple element( such as list ). This can have application in situations we need to combine values to form a whole. Let's discuss certain ways in which this can be performed. Method #1: Using
7 min read
Python | Convert string tuples to list tuples
Sometimes, while working with Python we can have a problem in which we have a list of records in form of tuples in stringified form and we desire to convert them to a list of tuples. This kind of problem can have its occurrence in the data science domain. Let's discuss certain ways in which this task can be performed. Method 1 (Using eval() + list
4 min read
Python | How to Concatenate tuples to nested tuples
Sometimes, while working with tuples, we can have a problem in which we need to convert individual records into a nested collection yet remaining as separate element. Usual addition of tuples, generally adds the contents and hence flattens the resultant container, this is usually undesired. Let's discuss certain ways in which this problem is solved
6 min read
Python - Filter all uppercase characters Tuples from given list of tuples
Given a Tuple list, filter tuples that contain all uppercase characters. Input : test_list = [("GFG", "IS", "BEST"), ("GFg", "AVERAGE"), ("GfG", ), ("Gfg", "CS")] Output : [('GFG', 'IS', 'BEST')] Explanation : Only 1 tuple has all uppercase Strings. Input : test_list = [("GFG", "iS", "BEST"), ("GFg", "AVERAGE"), ("GfG", ), ("Gfg", "CS")] Output : [
8 min read
Python program to find Tuples with positive elements in List of tuples
Given a list of tuples. The task is to get all the tuples that have all positive elements. Examples: Input : test_list = [(4, 5, 9), (-3, 2, 3), (-3, 5, 6), (4, -6)] Output : [(4, 5, 9)] Explanation : Extracted tuples with all positive elements. Input : test_list = [(-4, 5, 9), (-3, 2, 3), (-3, 5, 6), (4, -6)] Output : [] Explanation : No tuple wit
10 min read
Practice Tags :
three90RightbarBannerImg