Python Dictionary with Keys having Multiple Inputs (original) (raw)
Last Updated : 3 Feb, 2026
In Python, dictionaries store data as key-value pairs. Tuples can be used as keys to represent multiple values, like coordinates or combinations, because they are immutable and hashable.
Let's consider an example where tuples are used as keys to store multiple numbers together:
Python `
points = {}
points[(1, 2)] = "A" points[(3, 4)] = "B"
print(points[(1, 2)]) print(points[(3, 4)])
`
**Explanation:
- Each key is a tuple representing multiple inputs.
- The value can be any data (here, "A" and "B").
- Access values using the tuple key.
Dictionary with Multiple Inputs as Keys
Let's consider an example where we use tuples as dictionary keys to store multiple numbers together, with each tuple mapping to a value.
Python `
dict = {}
dict[(1, 2, 3)] = "First" dict[(4, 5, 6)] = "Second"
print(dict[(1, 2, 3)])
print(dict[(4, 5, 6)])
print(dict)
`
Output
First Second {(1, 2, 3): 'First', (4, 5, 6): 'Second'}
**Explanation:
- **dict[(1, 2, 3)] = "First": Uses the tuple (1, 2, 3) as a key and stores "First" as its value.
- **dict[(4, 5, 6)] = "Second": Uses the tuple (4, 5, 6) as a key and stores "Second" as its value.
- You can access values using the tuple key: dict[(1, 2, 3)] gives "First".
Using Multi-Keys to Store Coordinates
Let's consider a scenario where latitude and longitude are used as keys, and their corresponding place names are stored as values.
Python `
places = { ("19.07'53.2", "72.54'51.0"): "Mumbai", ("28.33'34.1", "77.06'16.6"): "Delhi" }
print(places) print('\n')
lat, long, plc = [], [], [] for i in places: lat.append(i[0]) long.append(i[1]) plc.append(places[i])
print(lat) print(long) print(plc)
`
Output
{("19.07'53.2", "72.54'51.0"): 'Mumbai', ("28.33'34.1", "77.06'16.6"): 'Delhi'}
["19.07'53.2", "28.33'34.1"] ["72.54'51.0", "77.06'16.6"] ['Mumbai', 'Delhi']
**Explanation:
- Tuples (latitude, longitude) are used as dictionary keys.
- Values store the place names.
- You can easily extract latitudes, longitudes, and place names into separate lists.
Complex Dictionary with Multiple Key Inputs
In this example, each key is a tuple containing three elements - an integer ID, first name, and last name, and each value is itself a nested dictionary with additional details.
Python `
data = { (1, "John", "Doe"): {"a": "geeks", "b": "software", "c": 75000}, (2, "Jane", "Smith"): {"e": 30, "f": "for", "g": 90000}, (3, "Bob", "Johnson"): {"h": 35, "i": "project", "j": "geeks"}, (4, "Alice", "Lee"): {"k": 40, "l": "marketing", "m": 100000} }
print(data[(1, "John", "Doe")]["a"]) print(data[(2, "Jane", "Smith")]["f"]) print(data[(3, "Bob", "Johnson")]["j"])
data[(1, "John", "Doe")]["a"] = {"b": "marketing", "c": 75000} data[(3, "Bob", "Johnson")]["j"] = {"h": 35, "i": "project"}
print(data[(1, "John", "Doe")]["a"]) print(data[(3, "Bob", "Johnson")]["j"])
`