Add Multiple Tuples to a Single Dictionary Key

Last Updated : 23 Jul, 2025

Sometimes multiple tuples need to be stored under the same key. For example, if we want to group data points like coordinates or pairs of related values under a specific category, we can achieve this by adding multiple tuples to a single dictionary key. Let's explore several methods to accomplish this.

Using append() with a List

The most efficient approach is to use a list as the value for the dictionary key and append the tuples to it.

Python
# Initialize the dictionary
d = {}

# Tuples to add
tup = [(1, 2), (3, 4), (5, 6)]

# Dictionary key
key = "coordinates"

# Initialize the key with an empty list if it doesn't exist
if key not in d:
    d[key] = []

# Append tuples to the list
for t in tup:
    d[key].append(t)

print(d)

Output
{'coordinates': [(1, 2), (3, 4), (5, 6)]}

Explanation:

  • We check if the key exists in the dictionary; if not, we initialize it with an empty list.
  • Each tuple is appended to the list corresponding to the key.
  • This approach is efficient and easy to implement.

Let's explore some more ways and see how we can add multiple tuples to a single dictionary key.

Using setdefault

setdefaul() method initializes the key with a default value if it doesn’t exist. It simplifies the process of handling dictionary keys.

Python
d = {}

tup = [(1, 2), (3, 4), (5, 6)]

key = "coordinates"

# Use setdefault to initialize the key with an empty list
for t in tup:
    d.setdefault(key, []).append(t)

print(d)

Output
{'coordinates': [(1, 2), (3, 4), (5, 6)]}

Explanation:

  • setdefault() eliminates the need for an explicit check to initialize the key.
  • The tuples are appended directly to the list corresponding to the key.
  • This method is compact and avoids boilerplate code.

Using defaultdict

A defaultdict() from the collections module automatically initializes the key with a default value, such as an empty list.

Python
from collections import defaultdict

d = defaultdict(list)

tup = [(1, 2), (3, 4), (5, 6)]

ey = "coordinates"

# Append tuples to the list
for t in tup:
    d[key].append(t)

print(dict(d))

Output
{'coordinates': [(1, 2), (3, 4), (5, 6)]}

Explanation:

  • A defaultdict() simplifies the process by automatically initializing the key with an empty list.
  • This approach is ideal for scenarios where keys are added dynamically.

Using Manual Initialization

A less efficient method is to manually check and initialize the key before appending tuples.

Python
d = {}

tup = [(1, 2), (3, 4), (5, 6)]

key = "coordinates"

# Check and manually initialize the key
if key in d:
    d[key] += tup
else:
    d[key] = tup

print(d)

Output
{'coordinates': [(1, 2), (3, 4), (5, 6)]}

Explanation:

  • This method requires explicit checks and initialization.
  • While functional, it is less concise compared to other approaches.
Comment