Modulo of tuple elements in Python

Finding the modulo (remainder) of corresponding tuple elements is a common operation in Python. The zip() method combined with a generator expression provides an efficient solution for element-wise modulo operations.

A generator expression is a memory-efficient way to create iterators. It automatically implements __iter__() and __next__() methods while keeping track of internal states and raising StopIteration when no values remain.

The zip() method takes multiple iterables, pairs corresponding elements together, and returns them as tuples.

Basic Example

Here's how to calculate modulo of corresponding tuple elements ?

my_tuple_1 = (67, 45, 34, 56)
my_tuple_2 = (99, 123, 10, 56)

print("The first tuple is:")
print(my_tuple_1)
print("The second tuple is:")
print(my_tuple_2)

my_result = tuple(elem_1 % elem_2 for elem_1, elem_2 in zip(my_tuple_1, my_tuple_2))

print("The modulus tuple is:")
print(my_result)
The first tuple is:
(67, 45, 34, 56)
The second tuple is:
(99, 123, 10, 56)
The modulus tuple is:
(67, 45, 4, 0)

How It Works

The operation breaks down as follows:

  • zip(my_tuple_1, my_tuple_2) pairs corresponding elements: (67,99), (45,123), (34,10), (56,56)
  • Generator expression iterates through each pair: elem_1 % elem_2
  • Results: 67%99=67, 45%123=45, 34%10=4, 56%56=0
  • tuple() converts the generator to a tuple

Using List Comprehension

You can also use list comprehension and convert to tuple ?

tuple_1 = (15, 28, 42, 18)
tuple_2 = (4, 7, 5, 6)

result = tuple([x % y for x, y in zip(tuple_1, tuple_2)])
print("Modulo result:", result)
Modulo result: (3, 0, 2, 0)

Handling Unequal Length Tuples

When tuples have different lengths, zip() stops at the shortest tuple ?

short_tuple = (20, 15)
long_tuple = (3, 4, 5, 6, 7)

result = tuple(x % y for x, y in zip(short_tuple, long_tuple))
print("Result with unequal lengths:", result)
print("Only", len(result), "elements processed")
Result with unequal lengths: (2, 3)
Only 2 elements processed

Key Points

  • Generator expressions are memory-efficient for large datasets
  • zip() pairs corresponding elements from multiple iterables
  • Division by zero will raise a ZeroDivisionError
  • Result tuple length equals the shortest input tuple

Conclusion

Use zip() with generator expressions for efficient element-wise modulo operations on tuples. This approach is both readable and memory-efficient for processing corresponding elements.

Updated on: 2026-03-25T17:06:59+05:30

738 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements