首页 > 解决方案 > 如何从特定键中获取值

问题描述

我定义了一个这样的类:

class NodeData :
    key = 0
    neighbors = {}
    location = ()

    def __init__(self, k, l):
        self.key = k
        self.location = l
        self.neighbors = {k: {}}

    def __str__(self) :
        return "key = %d" % self.key + ", pos = " + '{0}'.format(self.location) +\
               ", neighbors = " + '{0}'.format(NodeData.neighbors.get(self.key))

现在我需要用权重连接这些节点之间的边。所以,我在字典中创建了一个字典,如下所示:

node = NodeData(1, (5, 0, 0))
node.neighbors = {0: 1.2}

所以,邻居现在有这个:

{1: {0: 1.2}}

然后,我创建了另一个节点:

node2 = NodeData(2, (6, 0, 0))

现在,我想连接node2node但我很难知道如何知道是否node2.key已经是node

此函数获取节点的邻居: NodeData.neighbors.get(node.key)但我没有找到将其与 node2.key 进行比较的方法

node2 返回key = 2, pos = (6, 0, 0), neighbors = None所以它不匹配NodeData.neighbors.get(node.key)

已经尝试过NodeData.neighbors.get(node.key).get(node2.key),但它返回:

'NoneType' object has no attribute 'get'

因为node2不是邻居node

有什么建议吗?

标签: pythonpython-3.x

解决方案


使用[]语法访问嵌套值。

例如

dic = { "key" : {"key 2" : 20} }

dic["key"]["key 2"]

哪个会回来

20

推荐阅读