2016-11-30 23 views
0

爲什麼sum()和min()的內置函數比簡單的實現要好得多(下面註釋掉)?他們如何提高績效?爲什麼sum()和min()的Python內建函數好得多?

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) 
+7

我很確定他們寫在高度優化的C. – TigerhawkT3

回答

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; 
} 
相關問題