Вашему решению предоставлен словарь data
, в котором ключами являются слова, а значениями списки чисел.
Напишите одно выражение, которое находит ключ с наименьшей суммой значений.
Если таких несколько — выберите лексикографически наименьший (т.е. тот, что раньше по алфавиту).
Примечание
В решении не должно быть ничего, кроме выражения.
Подсказка:
Воспользуйтесь шаблоном:
... for word, number in data.items() if ...
Рекомендуем сформировать из словаря последовательность кортежей вида (сумма, слова)
. В такой последовательности легко найти слово с наименьшей суммой с помощью функции min
. Результатом будет второй элемент полученного кортежа.
Пример
Ввод
data = {'a': [1, 2, 3], 'b': [2, 3, 4, 5]}
Вывод
'a'
Ввод
data = {'a': [100], 'b': [20, 5], 'c': [7, 15, 3]}
Вывод
'b'
Решение
Опять же подсказка фактически раскрывает решение. Из интересного тут разве что конструкция min(…)[1] которая берет второй элемент кортежа. Это прекрасное но не совсем очевидное следствие объектной ориентированности python.
Посмотреть код
Решение
min((sum(numbers), word) for word, numbers in data.items())[1]