узнать, какой список содержит значение в словаре - PullRequest
1 голос
/ 15 октября 2019

Я написал шахматную программу и в настоящее время пробираюсь через проверку кодов. Как я могу определить, какая часть (ключ в словаре) имеет kingpos в своем списке?

Пример ниже должен дать ответ 'ksbishop'.

kingpos=(5,1)
movesdict={'ksknight': [(8, 3), (5, 2), (6, 3)],
 'ksbishop': [(3, 6), (4, 7), (5, 8), (1, 4), (1, 6), (3, 4), (4, 3), (5, 1), (6, 1)],
 'king': [(6, 1), (5, 2), (4, 1)],
 'queen': [(4, 5), (2, 4), (1, 3), (2, 6), (1, 7), (4, 4)],
 'qsknight': [(3, 3), (1, 3)]}
if kingpos in [z for v in movesdict.values() for z in v]:
# find out which key has it 

1 Ответ

2 голосов
/ 15 октября 2019

Вы можете использовать понимание списка:

>>> [key for key in movesdict if kingpos in movesdict[key]]
['ksbishop']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...