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 应优先使用。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值