timeit模块
    class timeit.Timer(stmt=’’, setup=’’, timer)
    timeit.Timer.timeit(number=) 设定运行次数
    函数test1()已存在
    def

    1. from timeit import Timer
    2. def t1():
    3. l = []
    4. for i in range(10000):
    5. l.append(i)
    6. def t2():
    7. l = []
    8. for i in range(10000):
    9. l = l + [i]
    10. def t3():
    11. l = [i for i in range(10000)]
    12. def t4():
    13. l = list(range(10000))
    14. def t5():
    15. l = []
    16. for i in range(10000):
    17. l.extend([i])
    18. def t6():
    19. l = []
    20. for i in range(10000):
    21. l.insert(0, i)
    22. timer1 = Timer("t1()", "from __main__ import t1")
    23. print("append:", timer1.timeit(1000))
    24. timer2 = Timer("t2()", "from __main__ import t2")
    25. print("+:", timer2.timeit(1000))
    26. timer3 = Timer("t3()", "from __main__ import t3")
    27. print("[i for i]:", timer3.timeit(1000))
    28. timer4 = Timer("t4()", "from __main__ import t4")
    29. print("list(range):", timer4.timeit(1000))
    30. timer5 = Timer("t5()", "from __main__ import t5")
    31. print("extend:", timer5.timeit(1000))
    32. timer6 = Timer("t6()", "from __main__ import t6")
    33. print("extend:", timer6.timeit(1000))

    output

    1. append: 1.098251899999994
    2. +: 1.2654654000000036
    3. [i for i]: 0.43519179999999835
    4. list(range): 0.16415600000000552
    5. extend: 1.4581348999999975
    6. extend: 27.413572600000002

    l = l + [i] 与 l += [i] 处理逻辑不同,python将+=符号优化了

    整型(int) 占四个字节(Byte),每个字节八位(bit)
    一个字符(char)占一个字节
    一个字节代表一个地址单元
    地址本身占四个字节