为什么sum()和min()的Python内置函数要好得多?

时间:2016-11-30 03:54:51

标签: python algorithm sum min built-in

为什么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)

1 个答案:

答案 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;
}