Pythonic是什么?

Python 之禅之中有这样几句话:

优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)

我想这应该可以大致解释一下 Pythonic 了。之前我在学习和写 Python 的时候, 都是在用我当初写 Java 的那些东西。丝毫没有一点 Python 特有的感觉, 感觉就像在写 Java 代码,只不过在使用 Python 的 语法复制一遍,直到今天我看见了这样的Pythonic。明白了这才是 Python 。

Python 快排。

 1 def quick_sort(array):
 2     if len(array) <=1:
 3         return array
 4     left, right = [], []
 5     avg = array.pop()
 6     for x in array:
 7         if x >= avg:
 8             right.append(x)
 9         else:
10             left.append(x)
11     return quick_sort(left) + [avg] + quick_sort(right)

在对比一下我之前写的快排 https://www.cnblogs.com/JulyShine/articles/10017886.html 。四个字, 不忍卒读,感觉自己就是个傻子,在交换两个数时,我这样写的:

交换 a, b

test = a
a = b
b = test

Pythonic:

a, b = b, a

.....

唉, 我脑壳疼。。。,从来没想到过啊。。。

ps:

学无止境,且行且珍惜, 与君共勉!

原文地址:https://www.cnblogs.com/JulyShine/p/10061131.html