据说后者在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

  

python list 的+、+=和extend操作的更多相关文章

  1. (转)python 列表与元组的操作简介

    python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...

  2. python 文件及文件夹操作

    python 文件.目录操作(新增.移动.删除等) python 文件夹与文件操作 mport string, os, sys dir = '/var' print '----------- no s ...

  3. 使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  4. Python/Django(CBV/FBV/ORM操作)

    Python/Django(CBV/FBV/ORM操作) CBV:url对应的类(模式) ##====================================CBV操作============ ...

  5. Python_基于Python同Linux进行交互式操作实现通过堡垒机访问目标机

    基于Python同Linux进行交互式操作实现通过堡垒机访问目标机   by:授客 QQ:1033553122 欢迎加入全国软件测试交流群:7156436 实现功能 1 测试环境 1 代码实践 2 注 ...

  6. python入门学习:3.操作列表

    python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表   循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...

  7. 在Python程序中的进程操作,multiprocess.Process模块

    在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...

  8. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  9. python 关于文件夹的操作

    在python中,文件夹的操作主要是利用os模块来实现的, 其中关于文件夹的方法为:os.lister() , os.path.join() , os.path.isdir() #  path 表示文 ...

  10. Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法

    知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...

随机推荐

  1. 解决并发情况下库存减为负数问题--update2016.04.24

    场景: 一个商品有库存,下单时先检查库存,如果>0,把库存-1然后下单,如果<=0,则不能下单,事务包含两条sql语句: ; update products ) WHERE id=; 在并 ...

  2. nginx和fpm的进程数配置和502,504错误

    502 和 php-fpm.conf 1.php-cgi进程数不够用.php执行时间长,导致没有空闲进程处理新请求. 2.php-cgi进程死掉.php-fpm超时时间短,当前进程执行超时关闭连接. ...

  3. Android Studio 连接真机不识别

    本人也是初学..写错的请大神多多批评指正! 不胜荣幸!! 强烈推荐使用真机测试..除非是最后关头要测试各个Android系统版本.. 本人遇到的连不上的原因有以下几种: 1  --   手机设置问题. ...

  4. Mysql表分区几种方式

    自5.1开始对分区(Partition)有支持,一张表最多1024个分区 查询分区数据: SELECT * from table PARTITION(p0) = 水平分区(根据列属性按行分)= 举个简 ...

  5. Xcode常用技巧(1)-使用Xcode进行代码分析及GDB调试

    1. 使用Xcode分析代码,分析分为静态分析及动态分析 静态分析:(Xcode-Product-Analyze)  检测代码是否有潜在的内存泄露  编译器认为不太合适的代码 运行结果: 若程序有 ...

  6. Hadoop生态系统

    Hadoop 生态圈

  7. linux网络:常用命令(二)

    1.ping命令:与Windows下基本功能一样但也有所区别 1.命令格式: ping [选项] ip地址或域名主机等 选项 -c 加次数 -d 使用Socket的SO_DEBUG功能. -f 极限检 ...

  8. centos 安装php7.0.2

    PHP7.0正式版已经在2015年11月份左右发布,目前是PHP7.0.2版本,本人最早是从2015年8月php7的第一个测试版跟起,现在正式版发布. linux版本:64位CentOS 6.6 Ng ...

  9. systemd

    本文参照:https://wiki.archlinux.org/index.php/Systemd#Basic_systemctl_usage 做了翻译和整理 systemd是Linux下的一种ini ...

  10. JSON/XML序列化与反序列化(非构造自定义类)

    隔了很长时间再重看自己的代码,觉得好陌生..以后要养成多注释的好习惯..直接贴代码..对不起( ▼-▼ ) 保存保存:进行序列化后存入应用设置里 ApplicationDataContainer _a ...