Dictionary(key,value)保存为对象和字符串列表的值,想要访问对象属性

时间:2014-12-15 22:59:49

标签: python list object dictionary key

我有一个Key-Value Dict,它包含一个Object和String的列表,

Dict[Key] = [object,string]

我想直接从字典中访问该对象的属性,我正在尝试这个,但它不起作用:

(generated["key"])[0].pathcost

如果生成的是dict,则对象位于列表的第0位,pathcost是访问所需的属性。

最好的办法是什么?

对象定义是:     类节点:     id = 0

def __init__(self, state, parent, action, depth=0, pathcost=0, heurcost=0):
    self.state = state
    self.parent = parent
    self.action = action
    self.depth = depth
    self.pathcost = pathcost
    self.heurcost = heurcost
    self.id = Node.id
    Node.id = Node.id + 1

我以这种方式生成地图:

generated[n.state] = [n, 'E']

确切地说它给出错误的代码是:     if(suc not in generated)或((生成中的suc)和((生成[suc])[0] .pathcost>(n.pathcost + cost))):

错误给出的是这个:

...
if (suc not in generated) or ((suc in generated) and (generated[suc].pathcost > (n.pathcost + cost))):

AttributeError:'list'对象没有属性'pathcost'

1 个答案:

答案 0 :(得分:1)

“(生成[suc] .pathcost>”出现在引用的错误中。

这与你说你正在执行的“(生成[suc])[0] .pathcost”不同。

由于你的错误说pathcost不是List的一个属性,我想你可能只是遗漏了[0]列表索引。