Yes, that is truth. [loss for loss in itervalues()] is converting iterator to a list. But question was why we should convert iterator to a list and than sum it sum(loss for loss in loss_dict.values())?  Why we cannot sum iterator directly sum(loss_dict.values()) ? What is different ?