Python built-in sum function vs. for loop performance

前端 未结 4 1545
野性不改
野性不改 2020-12-03 08:34

I noticed that Python\'s built-in sum function is roughly 3x faster than a for loop when summing a list of 1 000 000 integers:

import timeit

de         


        
4条回答
  •  清歌不尽
    2020-12-03 09:05

    However if the loop is just adding 1 each iteration starting from 0 you could use the fast trick addition. The sum output should be 499999500000 for range(1000000)

    import timeit
    
    def sum1():
        s = 0
        for i in range(1000000):
            s += i
        #print s    
        return s
    
    def sum2():
    
        return sum(range(1000000))
    
    def sum3():
        s = range(1000000)
        s = ((s[1]+s[-1])/2) * (len(s)-1)
        #print(s)
        return s
    
    print 'For Loop Sum:', timeit.timeit(sum1, number=10)
    print 'Built-in Sum:', timeit.timeit(sum2, number=10)
    print 'Fast Sum:', timeit.timeit(sum3, number=10)
    
    #prints
    #For Loop Sum: 1.8420711
    #Built-in Sum: 1.1081646
    #Fast Sum: 0.3191561
    

提交回复
热议问题