Python:根据字典查找最小值

kyo*_*ine 0 python dictionary a-star

所以这就是我"喜欢"能够写的东西:

cur_loc = min(open_set,key=lambda x:costs[x])
Run Code Online (Sandbox Code Playgroud)

cur_loc是一个元组,目标是将其设置为等于open_set具有最低成本的元组.(你会发现成本xcosts[x])

我怎么能这样做?我尝试过Python.org的文档min(),但我似乎没有找到太多帮助.

谢谢!

编辑: 我解决了自己的问题.

我很迟钝,没有初始化费用字典.我实际上是复制并粘贴其他人的python代码以测试他们正在做什么,但显然他们创建的代码片段不包括初始化部分.Woops.如果有人有兴趣:

        for row in range(self.rows):
            for col in range(self.cols):
                myloc = (row,col)
                if (myloc) not in closed_set:

                    costs[myloc] = (abs(end_row-row)+abs(end_col - col))*10

                    if (myloc) not in open_set:
                        open_set.add(myloc)

                    parents[myloc] = cur_loc

        cur_loc = min(open_set,key=lambda x:costs[x])
Run Code Online (Sandbox Code Playgroud)

S.L*_*ott 5

为我工作.你有什么问题?

>>> costs = { '1': 1, '2': 2, '3': 3 }
>>> open_set = set( ['1','2'] )
>>> min(open_set,key=lambda x:costs[x])
'1'
Run Code Online (Sandbox Code Playgroud)