#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author: Administrator
# datetime: 2020/3/27 0027 下午 4:36
# ide: PyCharm
from timeit import Timer
import functools
def test_time(number):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
t = Timer(func, "from __main__ import " + func.__name__)
print(t.timeit(number))
return wrapper
return decorator
@test_time(1000)
def test1():
l = []
for i in range(1000):
l += [i]
@test_time(1000)
def test2():
l = []
for i in range(1000):
l.append(i)
@test_time(1000)
def test3():
l = [i for i in range(1000)]
@test_time(1000)
def test4():
l = list(range(1000))
test1()
test2()
test3()
test4()
很明显,4种方法运行时间差别很大
列表连接concat最慢,list range最快
速度相差近200倍
append也要比concat快
列表推导式速度是append两倍左右