在 Python 中创建二维字典
Posted
技术标签:
【中文标题】在 Python 中创建二维字典【英文标题】:Creating 2D dictionary in Python 【发布时间】:2014-11-13 11:27:32 【问题描述】:我有一个来自“set1”输出的详细信息列表,例如“name”、“place”、“animal”、“thing” 和具有相同细节的“set2”。
我想用dict_names[setx]['name']...
等在这些行上创建一个字典。
这是最好的方法吗?如果没有,我该怎么做?
我不确定 2D 在字典中是如何工作的。有任何指针吗?
【问题讨论】:
举一个更具体、更完整的例子会有所帮助。setx
中有什么,你希望 dict_names[setx]['name']
返回什么?
【参考方案1】:
它将具有以下语法
dict_names =
'd1':
'name': 'bob',
'place': 'lawn',
'animal': 'man'
,
'd2':
'name': 'spot',
'place': 'bed',
'animal': 'dog'
然后您可以像这样查找内容
>>> dict_names['d1']['name']
'bob'
分配一个新的内部字典
dict_names['d1'] = 'name': 'bob', 'place': 'lawn', 'animal': 'man'
将特定值分配给内部字典
dict_names['d1']['name'] = 'fred'
【讨论】:
我创建了 'name':'bob', 'place':'lawn', 'animal':'man' 部分,但如何将其分配为 d1 的键?跨度>dict_names['d1'] = 'name':'bob', 'place':'lawn', 'animal':'man'
所以这就像一本普通的一维字典。
对不起 - 我跟着整个事情。只花了我几分钟,奇怪的是,即使我清楚地理解字典的概念。我认为大型结构有点吓到我!
当我需要通过第一个键和第二个键都获得***的情况下 - 例如,拉出所有具有“名称”标签的对象?【参考方案2】:
这样的事情会起作用:
set1 =
'name': 'Michael',
'place': 'London',
...
# same for set2
d = dict()
d['set1'] = set1
d['set2'] = set2
那么你可以这样做:
d['set1']['name']
等等。最好将其视为嵌套结构(而不是二维矩阵):
'set1':
'name': 'Michael',
'place': 'London',
...
'set2':
'name': 'Michael',
'place': 'London',
...
查看here,以轻松查看嵌套字典。
【讨论】:
这会保存重复的值【参考方案3】:这样的事情应该可以工作。
dictionary = dict()
dictionary[1] = dict()
dictionary[1][1] = 3
print(dictionary[1][1])
您也可以将其扩展到更高的维度。
【讨论】:
以上是关于在 Python 中创建二维字典的主要内容,如果未能解决你的问题,请参考以下文章