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