python - 如何从特定键中获取值
问题描述
我定义了一个这样的类:
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))
现在,我想连接node2
,node
但我很难知道如何知道是否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
有什么建议吗?
解决方案
使用[]
语法访问嵌套值。
例如
dic = { "key" : {"key 2" : 20} }
dic["key"]["key 2"]
哪个会回来
20
推荐阅读
- azure - 当 AppService 计划自动扩展时,HostedService 是否会自动扩展?
- three.js - three.js 用球体连接两个运动部件
- python - 当我调用 list.count() 函数时出现 AttributeError
- rust - 在 Substrate 的 decl_storage 宏中 impl trait X for Y as Z 是什么意思?
- mysql - SQL - 拥有 COUNT() 不能按预期工作
- python - 从 __init__.py 中的子模块导入函数而不暴露子模块
- python - 模型关系 - ForeignKey 或 OneToMany?
- c - 信用卡号码验证
- scala - 如何在不使用 UDF 的情况下将字符串列附加到 Scala Spark 中的数组字符串列?
- java - 将多个类写入一个 CSV 文件