@Nulltiton

Как в одну строчку сосчитать сумму произведения ключей и значений?

Есть словарь _testes, в котором ключи и значения представлены числами. Значения ключей - это элементы перечисления класса Test. Хочу красиво посчитать в одну строчку (или найти реализацию, которая не будет циклом). Подскажите, как это можно сделать? Была попытка посчитать как в методе cost, но получаю TypeError: 'Test' object is not subscriptable
class Test(Enum):
    A = Decimal(300)
    B = Decimal(10)

class Test2():
    def __init__(self):
        self._testes = { Test.A: 0, Test.B: 0 }

    def cost(self):
        cost = 0
        cost += {item[0].value * item[1] for item in self._testes}
        return cost


P.S. Также пытался сделать через map, создав отдельный подметок
def get_briefcase_cost(self):
        cost = 0
        cost = int(map(self._get_item_cost, self._testes))
        return cost

    def _get_item_cost(item):
        return item[0].value * item[1]
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
sum(float(key.value)*value for key,value in self._testes.items())


или если хочешь в Decimal ответ то убери float.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы