繁体   English   中英

如何分别对从 function 返回的变量求和?

[英]How to sum variables seperately that is returned from a function?

我想做这样的总结:

tot_males = 0
tot_females = 0
for groups in itertools.chain.from_iterable(self.class): # Iterates over all the class
    current_males, current_females = groups.number_of_persons() # Returns how many males and females there are in one group
    tot_males += current_males
    tot_females += current_females

return tot_males, tot_females # EDIT: Corrected return values

有没有办法在没有 for 循环的情况下进行求和? 我只是好奇。 这是迄今为止我创建的最佳解决方案。

调整从sum value of list of tuple给出的解决方案您可以执行以下操作

return *[sum(x) for x in zip(*[g.number_of_persons() for g in itertools.chain.from_iterable(self.class)])]

当然可以拆开来更好理解

groups = [g.number_of_persons() for g in itertools.chain.from_iterable(self.class)]
sums = [sum(x) for x in zip(*groups)]
tot_males, tot_females = *sums
return tot_males, tot_females

你可以用lambda function 和numpy做这样的事情。

pairs = numpy.array(list(map(lambda g: g.number_of_persons(), 
                          itertools.chain.from_iterable(self.class))))

return numpy.sum(pairs, axis=0)

您可以使用方法sum()完成此操作:

return sum[grps.num_of_per()[0] for grps in itertools.chain.from_iterable(self.class)], sum[grps.num_of_per()[1] for grps in chain.from_iterable(self.class)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM