[线上直播] 11 月 21 日晚 8 点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》
Python 语言这么火, 有很多同学是从其他语言转行过来的 (比如 c++,java 语言), 多多少少写代码的时候也会受其他语言的影响! 而对于刚开始学语言的小白同学来说, 解决问题的思路有的时候会比较单一, 其实 Python 有很多灵活的解法, 今天通过这 7 招, 带你写出一手漂亮的 code!
打印 index
对于一个列表, 或者说一个序列我们经常需要打印它的 index, 一般传统的做法或者说比较 low 的写法:
更优雅的写法是多用 enumerate
两个序列的循环
我们会经常对两个序列进行计算或者处理, 比较 low 的方法是用下标去循环处理
更优雅一点的方法: 用 zip 轻松搞定
有没有更优雅的方法呢, 比如如果两个序列有 10000 的长度, 当然有的用 izip
当然 izip 还是 Py2.x 时代的产物, 现在 Py3.6 里面默认 zip 都是 izip 了!
交换变量
多个变量之间的交换, 相信很多有 c,c++ 语言基础的同学对这个再熟悉不过了, 比如我们经典的冒泡排序, 就会用这一招, 看看比较传统的做法:
更优雅的做法是:
字典的读取
字典是我们经常使用的数据结构, 对于字典的访问和读取, 如果我们的读取的字典的 key 为空怎么办, 一般我们需要一个缺省值, 菜鸟的写法:
比较优雅的做法是:
巧妙的利用了字典 get 的用法, 如果字典里面没有 Susan 这个 key, 则用 unknow 来表示缺省值!
循环查找
我们经常会在一个大的循环中作搜索业务, 比如从一个文件中搜索关键字, 比如从文件名列表中查找一些特殊的文件名, 想当然的写法如下:
更优雅的写法: 上面的写法是传统的 c,c++ 写法, Python 里面有更简洁的写法:
文件读取查找
通常来说, 我们要打开一个文件, 然后对文件的内容进行循环读取和处理, 菜鸟的写法如下:
更优雅的写法:
关于锁的写法
对于并发操作尤其是多线程的操作, 我们对同一块内存进行读写操作的时候, 通常我们都加锁保护的, 想当然的写法如下:
上面这样的写法我自己写了很多年, 觉得没有啥问题啊, 后来遇到下面的写法, 瞬间膜拜了!
更优雅的写法:
结论:
上面这 7 招看起来很普通, 但是深刻的理解, 发现其实就是 Python 一贯倡导的 Pythonic 风格的代码, 简洁而优美!
来源: http://developer.51cto.com/art/201911/606072.htm