Вы можете использовать max
с dict.get
:
possible_moves = [(2, 1), (2, 2), (2, 3), (3, 1), (4, 5), (5, 2),
(5, 3), (6, 0), (6, 2), (7, 1), (0, 2), (0, 1)]
scores = {(0,0): 10000, (0,1): -3000, (0,2): 1000, (0,3): 800}
res = max(possible_moves, key=lambda x: scores.get(x, 0)) # (0, 2)
Это предполагает, что шаги, не найденные в вашем словаре, имеют оценку по умолчанию 0
.Если вы можете гарантировать, что каждое движение включено в качестве ключа в ваш scores
словарь, вы можете несколько упростить:
res = max(possible_moves, key=scores.__getitem__)
Обратите внимание, что синтаксис []
является синтаксическим сахаром для __getitem__
: если ключне найдено, вы встретите KeyError
.