python中loop的用法_Python使用技巧最终篇(干货收藏)

本文介绍了Python中提高代码性能的一些技巧,包括使用**运算符替代pow,利用cProfile、cStringIO和cPickle提升速度,选择最优的反序列化方式如json,以及理解猴子补丁的概念。同时,提到了Python中的时间格式转换和快速启动HTTP服务器的方法。此外,文章还提及了精通Python需要掌握的知识点,如性能分析工具、编译过程、元编程等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:Python使用技巧最终篇(干货收藏)

51. 使用**而不是pow

%timeit -n 10000 c = pow(2,20)

%timeit -n 10000 c = 2**20

10000 loops, best of 3: 284 ns per loop

10000 loops, best of 3: 16.9 ns per loop 52. 使用 cProfile, cStringIO 和 cPickle等用c实现相同功能(分别对应profile, StringIO, pickle)的包

import cPickle

import pickle

a = range(10000)

%timeit -n 100 x = cPickle.dumps(a)

%timeit -n 100 x = pickle.dumps(a)

100 loops, best of 3: 1.58 ms per loop

100 loops, best of 3: 17 ms per loop

由c实现的包,速度快10倍以上!

53. 使用最佳的反序列化方式

下面比较了eval, cPickle, json方式三种对相应字符串反序列化的效率,可见json比cPickle快近3倍,比eval快20多倍。

import json

import cPickle

a = range(10000)

s1 = str(a)

s2 = cPickle.dumps(a)

s3 = json.dumps(a)

%timeit -n 100 x = eval(s1)

%timeit -n 100 x = cPickle.loads(s2)

%timeit -n 100 x = json.loads(s3)

100 loops, best of 3: 16.8 ms per loop

100 loops, best of 3: 2.02 ms per loop

100 loops, best of 3: 798 µs per loop

54. 怎么才算精通python

熟悉语法以及原声数据结构

熟悉基本实现中的性能特点,就是知道什么操作会慢

会使用profile以及基于profile的性能分析工具

会使用运行时编译和静态编译的工具。pypy,numba,cython,ctypes,original C/C++ extension

熟悉你所在领域的拓展库,比如我,科学计算方面的库不要太多,numpy衍生出来的一大堆大堆

了解基本的编译过程,基本的操作系统知识(只要你C、C++学的还行就可以了)

要想精通python,写的代码首先得pythonic

研读牛B的开源代码,在这过程中会遇到python的许多高阶用法

理解装饰器,生成器,描述符,元类

掌握list comprehension,

多用内置函数:map,reduce,filter,iter,range,divmod,round,chr,enumerate,all,any,slice,zip+

55. python 猴子补丁相关

python里有一个很奇妙的monkey patch,中文叫做猴子补丁,是指的是在运行时动态替换某些已加载的模块的实现。第一次了解这个概念是在使用gevent的时候,需要把python自带的socket,os等相关模块的实现改变成异步形式,但同时不改动python的源代码。

56. python 中时间格式转换

8cd2f01e04c84d41b96492541413e43d.jpeg

57. python 一行代码启动 http 服务器

python -mSimpleHTTPServer

作者:地球的外星人君

来源:知乎

Python使用技巧(一 )←点击查看

零基础入职数据分析就业班

课程的形式主要是“直播+录播”

报名专享: 课程项目作业+1v1班主任监督学习+爱数据学院学员专属网站+班级答疑群

课程结束后能熟练掌握 SQL、Python、Excel、PPT等工具

适合人群:

1.转行(岗位相关,专业相关、对数据分析感兴趣)

2.从事数据分析工作,但是需要提升技能以及增加实战经验

3.应届毕业生入职数据分析

点击“阅读原文”入职数据分析返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值