python生成器的效率
今天在做一個list處理,由於內容較多,導致遲遲不過來結果,用效能分析後,發現慢在構造list的過程中。
由於是將所有資料都記載到記憶體計算,導致速度太慢。後面找到解決方案是採用yield構造生成器來處理。
速率大大的提升。
下面就針對yield和不適用yield做一個效能呢個對比,採用經典的斐波拉契數列計算。
def fib(n):
result = []
a=1
b=1
result.append(a)
for i in range(n-1):
a,b = b,a+b
result.append(a)
return result
這個函式是沒有采用yield構建list.
def fib1(n):
a=1
yield a
b=1
for i in range(n-1):
a,b = b,a+b
yield a
這個函式採用yield生成數列。
當n較小的時候。兩者沒有多大差別。
print fib(10000) 當n很大時,差別體現出來了。我這裡使用10000,在我自己基本上基本就停止工作了,出不來結果
for i in fib1(10000):
print i
而採用這種方式,同樣是10000 。2.4s就完成了。可想而知,效率差別多大
由於是將所有資料都記載到記憶體計算,導致速度太慢。後面找到解決方案是採用yield構造生成器來處理。
速率大大的提升。
下面就針對yield和不適用yield做一個效能呢個對比,採用經典的斐波拉契數列計算。
def fib(n):
result = []
a=1
b=1
result.append(a)
for i in range(n-1):
a,b = b,a+b
result.append(a)
return result
這個函式是沒有采用yield構建list.
def fib1(n):
a=1
yield a
b=1
for i in range(n-1):
a,b = b,a+b
yield a
這個函式採用yield生成數列。
當n較小的時候。兩者沒有多大差別。
print fib(10000) 當n很大時,差別體現出來了。我這裡使用10000,在我自己基本上基本就停止工作了,出不來結果
for i in fib1(10000):
print i
而採用這種方式,同樣是10000 。2.4s就完成了。可想而知,效率差別多大
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22418990/viewspace-1254964/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python的生成器Python
- python中的生成器Python
- Python 生成器Python
- Python生成器Python
- python生成器的原理探究Python
- python中生成器的使用Python
- 談談Python的生成器Python
- python ChainMap的呼叫效率PythonAI
- Python 進階_生成器 & 生成器表示式Python
- Python Generators(生成器)Python
- Python的迭代器和生成器Python
- python 生成器&迭代器Python
- 如何使用python生成器Python
- Python迷宮生成器Python
- python跳坑---生成器Python
- python如何建立遞增的生成器Python
- 解析python生成器函式的呼叫Python函式
- python生成器函式的特點Python函式
- python是如何實現生成器的Python
- 深入理解Python中的生成器Python
- 【工作效率】程式碼生成器,mysql、oracle雙資料庫MySqlOracle資料庫
- 提高python執行效率的方法Python
- python迭代器和生成器的總結Python
- 詳解Python中yield生成器的用法Python
- Python3 生成器解析Python
- python進階(11)生成器Python
- Python 生成器原理詳解Python
- 初學 Python(十四)——生成器Python
- Python迭代器與生成器Python
- 【python學習筆記】Python生成器yieldPython筆記
- 如何提高自學python 效率Python
- Python語法—迭代器、生成器Python
- Python基礎(12):生成器 & reducePython
- python如何快速建立生成器Python
- python三大神器===》生成器Python
- Python 高階特性(4)- 生成器Python
- python列表生成式和生成器Python
- 1.5.4 Python迭代器和生成器Python