【问题标题】:Creating 2D dictionary in Python在 Python 中创建二维字典
【发布时间】:2014-11-13 11:27:32
【问题描述】:

我有一个来自“set1”输出的详细信息列表,例如“name”、“place”、“animal”、“thing” 和具有相同细节的“set2”。

我想用dict_names[setx]['name']... 等在这些行上创建一个字典。

这是最好的方法吗?如果没有,我该怎么做?

我不确定 2D 在字典中是如何工作的。有任何指针吗?

【问题讨论】:

  • 举一个更具体、更完整的例子会有所帮助。 setx 中有什么,你希望 dict_names[setx]['name'] 返回什么?

标签: python dictionary set key 2d


【解决方案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])

您也可以将其扩展到更高的维度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 2013-01-29
    • 2016-12-10
    • 2019-08-07
    • 1970-01-01
    • 2019-04-09
    • 2012-11-23
    相关资源
    最近更新 更多