python列表extendpython 基础教程_python list 的+、+=和extend操作

本文通过测试比较了Python中列表操作`extend`和`+`在处理大量数据时的性能。结果显示,当列表b的长度为10^8时,`extend`方法耗时几乎只有`+`操作的一半。而在处理较小规模列表(长度1000)时,两者性能差距不明显。此外,测试还证实了`+=`操作与`extend`在性能上接近。
摘要由CSDN通过智能技术生成

据说后者在list很大的时候性能稍好。

于是测试了一把:

import time

def time_cost(func):

def _time_cost(*args,**kw):

t1=time.time()

func(*args,**kw)

t2=time.time()

return t2-t1

return _time_cost

@time_cost

def test_add(list_a,huge_list_b):

return list_a+huge_list_b

@time_cost

def test_extend(list_a,huge_list_b):

return list_a.extend(huge_list_b)

if __name__=='__main__':

print '-----big list test-------------'

a=[1]*1000

b=['a']*(10**8)

print 'add cost:%s seconds'%test_add(a,b)

print 'extend cost:%s seconds'%test_extend(a,b)

print '-----small list test-------------'

a=[1]*1000

b=['a']*(10**2)

print 'add cost:%s seconds'%test_add(a,b)

print 'extend cost:%s seconds'%test_extend(a,b)

我机器是win7,64bit,6G 内存,i3 cpu,结果如下:

-----big list test-------------

add cost:1.30500006676 seconds

extend cost:0.591000080109 seconds

-----small list test-------------

add cost:0.0 seconds

extend cost:0.0 seconds

在b为10^8长度的时候,extend所耗的时间几乎只有+操作的一半。

在1000长度的级别,相差不大。几乎相同。

+=等同于extend,如下:

import time

def time_cost(func):

def _time_cost(*args,**kw):

t1=time.time()

func(*args,**kw)

t2=time.time()

return t2-t1

return _time_cost

@time_cost

def test_add(list_a,huge_list_b):

list_a+=huge_list_b

return list_a

@time_cost

def test_extend(list_a,huge_list_b):

return list_a.extend(huge_list_b)

if __name__=='__main__':

print '-----big list test-------------'

a=[1]*1000

b=['a']*(10**8)

a2=[1]*1000

print '+= cost:%s seconds'%test_add(a,b)

print 'extend cost:%s seconds'%test_extend(a2,b)

输出:

-----big list test-------------

+= cost:0.506999969482 seconds

extend cost:0.510999917984 seconds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值