广西贺州建设局网站,wordpress火车头但存图片,logo设计公司地址,百度网站做pc自适应当你寻找这种问题的时候#xff0c;很开心#xff0c;你的代码水平以及对python的各种数据类型的认知会上升一个台阶#xff01; 我是什么时候开始思考这种问题的呢#xff1f;当然是有一天发现模型跑数据的时候#xff0c;程序一直在运行但却一直不出最终结果#xff0c…当你寻找这种问题的时候很开心你的代码水平以及对python的各种数据类型的认知会上升一个台阶 我是什么时候开始思考这种问题的呢当然是有一天发现模型跑数据的时候程序一直在运行但却一直不出最终结果然后发现作者写的代码真的是低效不得不说会写模型的人不一定会写代码
一、加速代码查找
1. 用 set 而非 list 进行查找初学者的通病
低效方法
list_data [i for i in range(1000000)]1098987 in list_data # 13.4 ms高效方法
set_data set(list_data)1098987 in set_data # 10.3 us原理很简单list 是线性查找即从前向后一个元素一个元素的查找set 是通过hash查找通过hash函数直接定位
2. 用 dict 而非两个 list 进行匹配查找
低效方法
list_a [i for i in range(1000000)]
list_b [i**2 for i in list_a]print(list_b[list_a.index(876567)]) # 7.5 ms高效方法
dict_ab dict(zip(list_a, list_b))print(dict_ab.get(876567, None)) # 141 us 二、加速你的循环
在循环中避免重复计算
低速方法
a [i for i in range(2000)]b [i/sum(a) for i in a] # 32.8 ms高效方法
sum_a sum(a)b [i/sum_a for i in a] # 266 us三、使用多进程
可以参考我之前博文 一篇文章学习python多进程
最后最后其实还有很多加速的方法不过上述是我目前常用到的方式啦想了解更多参见24式加速你的Python