今天读《python高级编程》,特举一例,说明phthonic的好处绝不仅仅是代码行数的缩短,它还可以提高代码执行效率。
二话不说,先上代码。
import time
a=time.time()
numbers = range(10000)
size = len(numbers)
evens = []
i = 0
while i < size:
if i % 2 == 0:
evens.append(i)
i+=1
i = 0
for i in range(len(evens)):
evens[i] += 1
i += 1
b=time.time()
ha = [i for i in range(10000) if i%2 == 0]
#ha = [i+1 for i in ha]
g = [i+1 for i in ha]
c=time.time()
print (b-a),(c-b)
代码中明显发现后者执行时间小于前者一半,此外笔者发现,用18行程序取代17行程序就可以使时间进一步缩短。原因十分简单,对自身内容的处理所用时间远大于重新开辟空间,这就是广为人知的“利用空间换取时间”的概念。
通过这个小例我们可以看出,虽然第一个程序易读性更高,更符合(C/JAVA)的编程模式,但phthonic的方式的确可以优化代码执行效率,希望笔者自己能写出更好的phthonic code