Итак, вот что я хотел бы написать:
cur_loc = min(open_set,key=lambda x:costs[x])
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])