Вопрос по коду для перебора списка (Python)
Что означает код выделенный двумя звездочками? Как его можно записать более понятно, например через if?
def __init__(self, limit):
self.limit = limit
self.records = []
...
...
def get_today_stats(self):
today = dt.date.today()
return sum**(rec.amount for rec in self.records
if rec.date == today)**
class Record:
def __init__(self, amount, comment, date):
self.amount = float(amount)
self.comment = comment
self.date = date
cash_calculator.add_record(Record(amount=3000, comment='бар в Танин др', date='08.11.2019'))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
return sum(rec.amount for rec in self.records if rec.date == today)
То, что в круглых скобках - это аналог "спискового включения", но в виде генератора (при этом итоговый список не создаётся, результаты работы генератора передаются по одному элементу). Записать это "по-простому" можно так:
s = 0
for rec in self.records:
if rec.date == today:
s += rec.amount
return s