2016-01-03 4 views
-6

Я хочу найти наименьшее значение в Словаре, например:Найти наименьшее значение в Словаре

chars_dict = {} 
chars_dict[0] = {'hp':750} 
chars_dict[1] = {'hp':1000} 
chars_dict[2] = {'hp':500} 

и получить 2

+3

Код еще не компилируется. Можете ли вы его отредактировать? – Ohumeronen

+0

Если ключи будут целыми числами от '0' до' n', вы, вероятно, должны использовать 'list'. – TigerhawkT3

+0

Также мы не являемся кодовым сервисом. – TigerhawkT3

ответ

1

Однолинейная ответ с помощью функции min с персонализированным key будет

min(chars_dict, key=lambda(item): chars_dict[item]['hp']) 

Я думаю, что это самое лучшее решение, потому что вы хотите, чтобы найти элемент с наименьшим 'hp'.

Кроме того, если вы используете словари в качестве контейнеров с постоянными ключами, лучше использовать пользовательские классы. И если ключи в dict увеличиваются на 1, вы также можете использовать список.

+0

Отлично! Это решило мою проблему, спасибо! –

0
hp_list = [750, 1000, 500] 


print(min(hp_list)) 
print('at position ', hp_list.index(min(hp_list))) 

Вы приближаетесь неполадку неправильный путь и также повторяя себя, если все значения в словаре будут 'hp' лучше создать список и сохранить там все hp.