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具有最低成本的元组.(你会发现成本x与costs[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)
为我工作.你有什么问题?
>>> 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)
| 归档时间: |
|
| 查看次数: |
713 次 |
| 最近记录: |