python 代码简洁,入门门槛低,成为不少初学编程者的首选。那么恭喜,毕竟白纸一张,直接学习 pythonic 的写法更容易记忆。但像我这种平时办公经常使用 Java 的工程师来说,把 python 写成 Java 的方式,不仅效率低,而且代码冗余很难看,因此有必要总结一下我所知道的优雅的 python 代码
多个变量赋值
给 a, b, c, d 赋值
普通写法
1 2 3 4
| >>> a=1 >>> b=2 >>> c=3 >>> d=4
|
优雅的写法
注:这种赋值方法可以不是一个类型
交换变量值
交换 a 和 b 变量的值
普通写法
1 2 3
| >>> tmp = b >>> b = a >>> a = tmp
|
优雅的写法
序列化解包(unpack)
将一个列表中的值赋给变量
普通写法
1 2 3 4
| >>> _list = ['刘能',50,'male'] >>> name = _list[0] >>> age = _list[1] >>> gender = _list[2]
|
优雅的写法
1 2 3 4 5 6 7 8
| >>> n,a,g=_list >>> n '刘能' >>> a 50 >>> g 'male' >>>
|
类 Java 三目运算
普通写法
1 2 3 4 5 6 7
| >>> x = None >>> y = 1 >>> if y > 1: ... x = 0 ... else: ... x = 1 ...
|
优雅的写法:
1 2
| >>> y = 1 >>> x = 0 if y > 1 else 1
|
拼接字符串
将列表中的字符串拼接起来
普通写法
1 2 3 4
| _list = ['a','b','c','d','e'] _merge = '' for x in _list: _merge += x
|
优雅的写法
添加分隔符的话
1
| _merge = ','.join(_list)
|
多个条件的判断
“与”
普通写法
1 2
| if exp1 and exp2 and exp3 and exp4: ...
|
优雅的写法:
1
| if all([exp1,exp2,exp3,exp4])
|
“或”
优雅的写法:
1
| if any([exp1,exp2,exp3,exp4])
|
遍历迭代器时同时访问索引
普通写法
1 2 3
| _list = ['a', 'b', 'c', 'd', 'e'] for i in range(len(_list)): print(_list[i])
|
优雅的写法
1 2
| for index, value in enumerate(_list): print('{0},{1}'.format(index, value))
|
非空的判断
判断字符串,列表,字典非空
普通写法
1 2 3 4 5 6 7 8 9
| a = '' b = [] c = {}
if a != '': pass
if len(b) > 0: pass
|
优雅的写法:
列表构造字典
普通写法
1 2 3 4 5
| _keys = ['1', '2', '3'] _values = ['v1', 'v2', 'v3'] _dict = {} for i in range(len(_keys)): _dict[_keys[i]] = _values[i]
|
优雅的写法
1
| _dict = dict(zip(_keys,_values))
|
写到这里,感觉 python 真的是太优雅了,如果用年龄来形容,就像一个 20 出头的妙龄少女,充满了青春与活力,让人忍不住想要亲近。哦对了,写到这里,感觉 Java 写起来就像 50 岁的大妈。对不起,大妈再老,也是吃饭的本钱