sum_num = 0
for human in humans:
sum_num += human.limbs
return sum_num
假设对象human
具有属性limbs
,如下所示:
human.limbs = rand.int(0, 4)
像列表理解一样,什么是缩短此时间的好方法?
sum_num = sum_num + human.limbs for human in humans
很明显,以上所述引发了错误。没有办法像上面那样缩短一些for循环吗?
答案 0 :(得分:3)
sum
函数是Python求和的方法。 sum()
需要迭代。在这种情况下,generator expression是一个非常有用的迭代。生成器表达式使用(基本上)与list comprehensions相同的语法。使用sum()
和生成器表达式,您可以尝试将其表达为:
sum(human.limbs for human in humans)