收藏,Python 开发中有哪些高级技巧?

Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不上多高级,但掌握这些至少可以让你的代码看起来 Pythonic 一点。如果你还在按照类C语言的那套风格来写的话,在 code review 恐怕会要被吐槽了。

列表推导式

 

收藏,Python 开发中有哪些高级技巧?

字典推导式

 

收藏,Python 开发中有哪些高级技巧?

集合推导式

 

收藏,Python 开发中有哪些高级技巧?

合并字典

 

收藏,Python 开发中有哪些高级技巧?

复制列表

 

收藏,Python 开发中有哪些高级技巧?

反转列表

 

收藏,Python 开发中有哪些高级技巧?

 PACKING / UNPACKING

变量交换

 

收藏,Python 开发中有哪些高级技巧?

高级拆包

 

收藏,Python 开发中有哪些高级技巧?

或者

 

收藏,Python 开发中有哪些高级技巧?

函数返回多个值(其实是自动packing成元组)然后unpacking赋值给4个变量

 

收藏,Python 开发中有哪些高级技巧?

列表合并成字符串

 

收藏,Python 开发中有哪些高级技巧?

链式比较

 

收藏,Python 开发中有哪些高级技巧?

yield from

 

收藏,Python 开发中有哪些高级技巧?

in 代替 or

 

收藏,Python 开发中有哪些高级技巧?

字典代替多个if else

 

收藏,Python 开发中有哪些高级技巧?

有下标索引的枚举

 

收藏,Python 开发中有哪些高级技巧?

生成器

注意区分列表推导式,生成器效率更高

 

收藏,Python 开发中有哪些高级技巧?

默认字典 defaultdict

 

收藏,Python 开发中有哪些高级技巧?

字符串格式化

 

收藏,Python 开发中有哪些高级技巧?

列表中出现次数最多的元素

 

收藏,Python 开发中有哪些高级技巧?

读写文件

 

收藏,Python 开发中有哪些高级技巧?

判断对象类型,可指定多个类型

 

收藏,Python 开发中有哪些高级技巧?

类似的还有字符串的 startswith,endswith

 

收藏,Python 开发中有哪些高级技巧?

__str__ 与 __repr__ 区别

 

收藏,Python 开发中有哪些高级技巧?

前者对人友好,可读性更强,后者对计算机友好,支持 obj == eval(repr(obj))

使用装饰器

 

收藏,Python 开发中有哪些高级技巧?

不使用装饰器,可读性非常差

 

收藏,Python 开发中有哪些高级技巧?