python代码优化
来源:互联网 发布:php 通过域名获取ip 编辑:程序博客网 时间:2024/05/29 17:23
python代码优化:
- 合并尽量用 join
>>>s1,s2,s3 = 'str1','str2','str3'>>>s1+s2+s3>>>'str1 str2 str3' '+' 为细粒度的内存资源申请 Python中字符串为不可变对象,一但创建将不能改变,故 如果使用+去连接字符串 每一次的连接都会在内存中创建一块新的内存空间,来存储连接后的字符串.所以当字符串规模越大 效率将越低, 连接时间约为s*n^2(s为复制一次字符串的平均时间)优化: join 为粗粒度内存资源申请 合并尽量优先使用join (), join会首先计算需要申请的总的内存空间,然后一次性申请所需内存并将字符序列中的每一个元素复制到内存中去,所以join的操作时间约为 s*n>>>s1,s2,s3 = 'str1','str2','str3'>>>''.join([s1,s2,s3])>>>'str1 str2 str3'
- 可以不用循环就不用循环
例1: valid_tags 数据为 [('漂亮',100),('美丽',150),('丑',89)] valid_tags_name = [] for n in valid_tags: valid_tags_name.append(n[0]) 用map优化循环: valid_tags_name = map(lambda x : x[0], valid_tags)
例2:newlist = [] for word in oldlist: newlist.append(word.upper())优化:newlist = map(str.upper, oldlist)或者newlist = [s.upper() for s in oldlist]
例3:使用dict1.get(key) 代替 if key in k_dict \使用xrange 代替range \使用字典代替List (字典是索引查询,速度为o(1); list为链表查询,速度为o(n)) 反例: k = [10,20,30,40,50,60,70,80,90] for i in xrange(10000): if i in k: pass优化k = [10,20,30,40,50,60,70,80,90]k_dict = {i:1 for i in k} #将list转换为dictfor i in xrange(10000): # if i in k_dict: if k_dict.get(i): #使用k_dict.get(i) 优化 if i in k_dict print i,
- 交集优化
list_a = [1,2,3,4,5]ist_b = [2,3,4,5,6]list_c = [a for a in list_a if a in list_b]优化:list_a = [1,2,3,4,5]list_b = [2,3,4,5,6]list_c= set(list_a)&set(list_b)
阅读全文
1 0
- Python代码优化:优化原则
- Python代码优化:优化策略
- Python代码优化
- Python代码优化
- Python的代码优化
- 优化代码(Python)
- Python代码优化
- Python代码优化概要
- Python 代码性能优化
- python代码优化
- Python代码性能优化
- Python代码优化实践
- python代码优化
- Python代码性能优化
- python 代码优化
- python代码优化
- Python代码性能优化技巧
- Python 代码性能优化技巧
- Vue.js 组件
- mongodb(一):在linux服务器上的安装和部分基础操作
- SpringBoot集成ActiveMQ
- 深入理解PHP:高级技巧、面向对象与核心技术(原书第3版) -- 设计模式之策略模式
- Python进阶—map函数
- python代码优化
- 分布式和集群的区别
- Android 使用volley上传图片、多张图片
- Unity协程队列,顺序分帧处理
- int、long、long long、unsigned int、_int64的取值范围(与不同位数的编译器有关)
- 利用ajax对页面局部刷新
- 在一个千万级的数据库查寻中,如何提高查询效率?
- 如何让你的浏览器没有广告?
- UE4 Login相关代码