python one-liner

Я хочу решение с одним вкладышем В Python следующего кода, но как?

total = 0
for ob in self.oblist:
    total+=sum(v.amount for v in ob.anoutherob)

Возвращает общее значение. Мне нужен один лайнер, плз, кто-нибудь, помогите мне

6
задан Deduplicator 31 January 2015 в 22:35
поделиться

2 ответа

Нет необходимости удваивать количество вызовов sum ()

total = sum(v.amount for ob in self.oblist for v in ob.anotherob)
32
ответ дан 8 December 2019 в 02:21
поделиться

Вы можете просто свернуть цикл for на другой уровень понимания:

total = sum(sum(v.amount for v in ob.anotherob) for ob in self.oblist)
7
ответ дан 8 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: