为什么sum()和min()的内置函数比简单的实现要好得多(下面注释掉)?它们如何改善性能?
class Solution(object):
def minMoves(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
'''
m = sys.maxint
s = 0
for i in nums:
s += i
if i < m:
m = i
'''
m = min(nums)
s = sum(nums)
return s - m * len(nums)
答案 0 :(得分:2)
正如Tigerhawk在评论中提到的,大多数内置函数都是用C语言编写的,可以看作here。我相信我们所寻找的内容始于line 591:
_sum(PyObject *module, PyObject *args)
{
PyObject *return_value = NULL;
PyObject *iterable;
PyObject *start = NULL;
if (!PyArg_UnpackTuple(args, "sum",
1, 2,
&iterable, &start)) {
goto exit;
}
return_value = builtin_sum_impl(module, iterable, start);
exit:
return return_value;
}