[英]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.