2D-woordenboek maken in Python

Ik heb een lijst met details van een uitvoer voor “set1”, zoals “naam”, “plaats”, “dier”, “ding”
en een “set2” met dezelfde details.

Ik wil een woordenboek maken met dict_names[setx]['name']...enz. Op deze regels.

Is dat de beste manier om het te doen? Zo niet, hoe doe ik dat dan?

Ik weet niet zeker hoe 2D werkt in het woordenboek.. Heb je tips?


Antwoord 1, autoriteit 100%

Het zou de volgende syntaxis hebben

dict_names = {'d1' : {'name':'bob', 'place':'lawn', 'animal':'man'},
              'd2' : {'name':'spot', 'place':'bed', 'animal':'dog'}}

Je kunt dan dingen opzoeken zoals

>>> dict_names['d1']['name']
'bob'

Antwoord 2, autoriteit 12%

Zoiets zou werken:

set1 = {
     'name': 'Michael',
     'place': 'London',
     ...
     }
# same for set2
d = dict()
d['set1'] = set1
d['set2'] = set2

Dan kun je het volgende doen:

d['set1']['name']

enz. Het is beter om het te zien als een geneste structuur (in plaats van een 2D-matrix):

{
 'set1': {
         'name': 'Michael',
         'place': 'London',
         ...
         }
 'set2': {
         'name': 'Michael',
         'place': 'London',
         ...
         }
}

Kijk hiervoor een eenvoudige manier om geneste woordenboeken te visualiseren.


Antwoord 3, autoriteit 8%

Zoiets zou moeten werken.

dictionary = dict()
dictionary[1] = dict()
dictionary[1][1] = 3
print(dictionary[1][1])

Je kunt het ook uitbreiden naar hogere dimensies.

Other episodes