Python几种list生成的性能比较

#!/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两倍左右

发布了268 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43833642/article/details/105146643