如果我想找到一个数字的数字总和,即:
- 输入:
932
- 输出:
14
,即(9 + 3 + 2)
最快的方法是什么?
我本能地做了:
sum(int(digit) for digit in str(number))
我在网上找到了这个:
sum(map(int, str(number)))
哪种方法最适合提高速度,还有其他更快的方法吗?
原文由 SpFW 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答873 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
你发布的两行都很好,但你可以纯粹用整数来做,这将是最有效的:
或者使用
divmod
:使用单个赋值语句稍微快一些: