Python 列表性能测试

     Python设计者在实现数据列表结构的时候有多种选择,每种选择都会直接影响列表操作的性能。常见的列表操作是增加一个列表,并向其添加元素。下面介绍常见的四种列表构造方法。

分别为:列表拼接、append方法、列表生成器、list( range)

    为了比较四种列表构造方法的性能,需要利用python的timeit模块中Timer

Timer: 定时器,能使函数运行指定次数,并返回测试时间。


**测试代码:**

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import timeit

#列表拼接:
def test1():
    l = []
    for i in range(1000):
        l = l + [i]

#append添加:
def test2():
    l = []
    for i in range(1000):
        l.append(i)

#列表生成式:
def test3():
    l = [i for i in range(1000)]

#list range:
def test4():
    l = list(range(1000))

#计算每个函数测试1000次所需要时间:

t1 = timeit.Timer('test1()', 'from __main__ import test1')
print('concat ', t1.timeit(number=1000), 'millseconds')

t2 = timeit.Timer('test2()', 'from __main__ import test2')
print('append', t2.timeit(number=1000), 'millseconds')

t3 = timeit.Timer('test3()', 'from __main__ import test3')
print('comprehension ', t3.timeit(number=1000), 'millseconds')

t4 = timeit.Timer('test4()', 'from __main__ import test4')
print('list range ', t4.timeit(number=1000), 'millseconds')

'''
concat         3.3679623384490145  millseconds
append         0.1141254175470392  millseconds
comprehension  0.05144768306391789 millseconds
list range     0.02158844989451536 millseconds
'''

评定:

    从上面的测试实验可以看出,列表拼接时最慢的,append方法比其快得多,最快的是列表生成器和list range
    然而,日常编程任务多为通过列表构建或筛选指定元素,因而 append 和List comprehension 应优先使用。

你可能感兴趣的:(Python)