Creating 2D dictionary in Python
Solution 1
It would have the following syntax
dict_names = {
'd1': {
'name': 'bob',
'place': 'lawn',
'animal': 'man'
},
'd2': {
'name': 'spot',
'place': 'bed',
'animal': 'dog'
}
}
You can then look things up like
>>> dict_names['d1']['name']
'bob'
To assign a new inner dict
dict_names['d1'] = {'name': 'bob', 'place': 'lawn', 'animal': 'man'}
To assign a specific value to an inner dict
dict_names['d1']['name'] = 'fred'
Solution 2
Something like this should work.
dictionary = dict()
dictionary[1] = dict()
dictionary[1][1] = 3
print(dictionary[1][1])
You can extend it to higher dimensions as well.
Solution 3
Something like this would work:
set1 = {
'name': 'Michael',
'place': 'London',
...
}
# same for set2
d = dict()
d['set1'] = set1
d['set2'] = set2
Then you can do:
d['set1']['name']
etc. It is better to think about it as a nested structure (instead of a 2D matrix):
{
'set1': {
'name': 'Michael',
'place': 'London',
...
}
'set2': {
'name': 'Michael',
'place': 'London',
...
}
}
Take a look here for an easy way to visualize nested dictionaries.
user2921139
I am a Pythonista and I love learning new stuff on Python everyday! Stackoverflow helps me seek knowledge and also provide help to other Pythonista's here.
Updated on January 11, 2022Comments
-
user2921139 over 2 years
I have a list of details from an output for "set1" which are like "name", "place", "animal", "thing" and a "set2" with the same details.
I want to create a dictionary with
dict_names[setx]['name']...
etc On these lines.Is that the best way to do it? If not how do I do it?
I am not sure how 2D works in dictionary.. Any pointers?
-
abarnert almost 10 yearsIt would help to give a more specific and complete example. What's in
setx
, and what do you wantdict_names[setx]['name']
to return?
-
-
user2921139 almost 10 yearsI have {'name':'bob', 'place':'lawn', 'animal':'man'} part created but how do I assign it as key to d1?
-
Cory Kramer almost 10 years
dict_names['d1'] = {'name':'bob', 'place':'lawn', 'animal':'man'}
-
user2921139 almost 10 yearsso this is like a regular 1D dictionary.
-
user2921139 almost 10 yearsSorry - i followed the entire thing. Just took me a few minutes, oddly even though i understand the dictionary concept clearly. The big structures kind of scare me I think!
-
numerah over 9 yearsthis saves the repeated values
-
chiffa over 7 yearsHow about the case when I need to get the top-level both by the first and second key - for instance, pull all the objects that have a "name" tag in them?
-
Noprogexprnce mathmtcn over 6 yearsGood answer! Is there a way we could do the above in a for loop; i.e. say there're k number of dictionaries with the same keys but different features. I'd like to combine them into a 2d dictionary in a for loop. I've tried initializing an empty dictionary and append. But that didn't work. Any help would be appreciated!