python - 缩短 For 循环

标签 python python-3.x python-2.7 list list-comprehension

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 循环?

最佳答案

sum function 是Pythonic 的求和方式。 sum() 接受一个可迭代对象。在这种情况下,一个非常有用的迭代是 generator expression 。生成器表达式使用(基本上)与 list comprehensions 相同的语法。 。使用 sum() 和生成器表达式,您想要做的事情可以非常简单地表达为:

sum(human.limbs for human in humans)

关于python - 缩短 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52471626/

相关文章:

python - 计算字符串被随机化的概率? - Python

python - 检查两个大型 Python 字典是否等价

python - 在 Mountain Lion OS X 上安装 Python igraph 时出现问题

python - sklearn cross_val_score如何使用kfold?

python - 如何将 Pandas 系列插入现有 Excel 文件的特定列(而不删除该文件中的内容)?

python - 如何检查一个列表中的所有项目是否都在 python 的第二个列表中?

python - 使用 pyDub 分割长音频文件

python - 无法在 Arch 上的 python/SimpleCV 中使用 webbrowser.open

python - Tensorboard:无标量值

python - 如何在 Python 中加载图像,但保持压缩状态?