20. 隐藏特性 5,带关键字的格式化
更新些的格式化:
21. 隐藏特性 6,切片操作的步长参数
可以用步长 -1 来反转链表:
22. 隐藏特性 7,嵌套列表推导式
列表推导构造permutation: 可以用 itertools.permutations 来实现。
23. 隐藏特性 8,print 重定向输出到文件
注意打开的模式: “w+” 而不能 “w” , 当然 “a” 是可以的
>>> print >> open("somefile", "w+"), "Hello World"
24. 隐藏特性 9, Python3中的元组unpack
25. 隐藏特性 10,pow的第三个参数
其实第三个参数是来求模的: pow(x, y, z) == (x ** y) % z,注意,内置的 pow 和 math.pow 并不是一个函数,后者只接受2个参数。
26. 隐藏特性 11,enumerate还有第二个参数¶
enumerate 很赞,可以给我们索引和序列值的对, 但是它还有第二个参数,这个参数用来: 指明索引的起始值。
27. 隐藏特性 12,显式的声明一个集合
在Python 2.7 之后可以这么声明一个集合。
28. 隐藏特性 13,用切片来删除序列的某一段
当然用 del a[1:4] 也是可以的,去除偶数项(偶数索引的):
29. 隐藏特性 14,isinstance可以接收一个元组
30. 让关键代码依赖于外部包
虽然Python让许多编程任务变得容易,但它可能并不总能为紧急的任务提供最佳性能。你可以为紧急的任务使用C、C++或机器语言编写的外部包,这样可以提高应用程序的性能。这些包都是不能跨平台的,这意味着你需要根据你正在使用的平台,寻找合适的包。
简而言之,这个方案放弃了一些应用程序的可移植性,以换取只有在特定主机上直接编程才能获得的程序性能。这里有一些你应该考虑加入到你的“性能兵工厂”的包:
这些包以不同的方式提高性能。例如,Pyrex能够扩展Python所能做的事情,例如使用C的数据类型来让内存任务更加有效或直接。PyInIne让你在Python应用程序中直接使用C代码。程序中的内联代码单独编译,但它在利用C语言所能提供的效率的同时,也让所有的代码都在同一个地方。
End.
作者:地球的外星人君
来源:知乎