Python - N Random Tuples list

The problem statement is to generate N random tuples using Python's random module. This is useful in applications that require random data generation, simulations, or testing scenarios.

Understanding the Problem

We need to generate a specified number of tuples, where each tuple contains random integers within a given range. Here's what we need ?

Number of tuples = 5
Minimum value = 0
Maximum value = 10
Generated list = [(4, 1), (2, 10), (5, 3), (6, 3), (1, 7)]

Algorithm

  • Step 1 Import the random module for generating random integers.

  • Step 2 Define a function with parameters for number of tuples, minimum and maximum values.

  • Step 3 Use list comprehension with random.randint() to generate random tuples.

  • Step 4 Return the list of generated tuples.

Method 1: Using List Comprehension

The most efficient approach uses list comprehension with random.randint() ?

import random

def generate_random_tuples(num_tuples, min_val, max_val):
    return [(random.randint(min_val, max_val), random.randint(min_val, max_val)) 
            for _ in range(num_tuples)]

# Generate 5 random tuples with values between 0 and 10
num_tuples = 5
min_val = 0
max_val = 10

result = generate_random_tuples(num_tuples, min_val, max_val)
print("Random tuples:", result)
Random tuples: [(3, 9), (8, 10), (8, 2), (10, 1), (6, 9)]

Method 2: Using a Loop

Alternative approach using a traditional for loop ?

import random

def generate_tuples_loop(num_tuples, min_val, max_val):
    tuple_list = []
    for _ in range(num_tuples):
        tuple_pair = (random.randint(min_val, max_val), random.randint(min_val, max_val))
        tuple_list.append(tuple_pair)
    return tuple_list

# Example usage
result = generate_tuples_loop(3, 1, 20)
print("Generated tuples:", result)
Generated tuples: [(15, 8), (12, 19), (7, 14)]

Method 3: Variable Tuple Size

Generate tuples with different sizes (not just pairs) ?

import random

def generate_variable_tuples(num_tuples, tuple_size, min_val, max_val):
    return [tuple(random.randint(min_val, max_val) for _ in range(tuple_size)) 
            for _ in range(num_tuples)]

# Generate 4 tuples, each with 3 elements
result = generate_variable_tuples(4, 3, 0, 5)
print("Variable size tuples:", result)
Variable size tuples: [(2, 0, 4), (5, 1, 3), (0, 5, 2), (4, 3, 1)]

Comparison

Method Readability Performance Flexibility
List Comprehension High Fastest Medium
For Loop Medium Slower High
Variable Size High Fast Highest

Time Complexity

The time complexity is O(N × M), where N is the number of tuples and M is the size of each tuple. For generating N pairs (2-tuples), the complexity is O(N).

Conclusion

Use list comprehension for generating random tuples as it's concise and efficient. The random.randint() function provides uniform distribution within the specified range, making it perfect for most random tuple generation needs.

Updated on: 2026-03-27T15:40:56+05:30

464 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements