Python: Обновление словаря с несколькими переменными?

У меня есть такой код:

    def update_amounts(self):
        container = {}

        a = {'a': self.a_amount} if self.a_mount or self.a_amount is None else {'': ''}
        container.update(a)
        b = {'b': self.b_amount} if self.b_amount or self.b_amount is None else {'':''}
        container.update(b)
        c = {'c': self.c_amount} if self.c_amount or self.c_amount is None else {'':''}
        container.update(c)

        return container

И я хотел бы узнать, возможно ли сделать обновление dict более эффективным, чем вызывать функцию update три раза?

Спасибо за внимание!

Для Python 3.9+ вы можете использовать символ трубы | для объединения нескольких словарей

    def update_amounts(self):
        # container = {}
        a = {'a': self.a_amount} if self.a_mount or self.a_amount is None else {'': ''}
        # container.update(a)
        b = {'b': self.b_amount} if self.b_amount or self.b_amount is None else {'':''}
        # container.update(b)
        c = {'c': self.c_amount} if self.c_amount or self.c_amount is None else {'':''}
        # container.update(c)
        container = a|b|c
        return container

Или же вы можете просто передать распакованные значения для каждого из словарей в метод update, наконец:

    def update_amounts(self):
        container = {}
        .
        .
        .
        container.update(**a, **b, **c)
        return container
Вернуться на верх