當前位置:編程學習大全網 - 源碼下載 - 如何讓Python簡潔高效

如何讓Python簡潔高效

1. List Comprehensions

使用list comprehension可以杜絕掉50%以上的for循環,後者的效率極其低下(可以看看C源碼的實現),而且不夠緊湊。

(1) Python官方的例子:

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x !=y]

運行結果得到:[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

(2) list的反轉:lis[::-1]

(3) 找n以內的質數:

>>> filter(lambda number: all(number%x for x in range(2, math.sqrt(prime))), range(2,n))

(4) 凱撒密碼:對於壹個字符串,每個字母右移n位加密。

code = ''.join([chr((ord(ch)+n-97)%26+97) if ord('a')<=ord(ch)<=ord('z') else ch for ch in str])

2. Python的動態性

Python完爆C++壹向自豪的泛型編程,模板編程,舉例如下:

def build(type, value):

return type(value)

然後可以就可以build(int,0)了……是不是比C++簡練多了?更牛逼的:

def impose(func, value):

return func(value)

def anyfunc(value):

return value*value

print impose(anyfunc, 3) # return 9, Python 2.7

所以,在Python裏類型、函數什麽的全部都可以看做是操作對象(第壹個例子顯示了對數據類型的操作,第二個是對函數的操作)。以上所有這些Python的特性,妳可能說我用C實現壹個壹樣的就好了。誠然,妳可以在C裏壹個個寫出來自己喜歡的特性,但是妳寫到後面妳會發現妳只是重新發明了Python,然後拿C寫了壹個解釋器,而且實現得更爛而已。Please!

Don't re-invent the wheel.

  • 上一篇:如何殺死灰鴿病毒?
  • 下一篇:IoStartPacket源代碼
  • copyright 2024編程學習大全網