3 -14 叠代 和列表 生成器
阿新 • • 發佈:2018-03-15
next 地址 clas pen def tro font bsp next()
列表生成式 執行效率高 簡潔
a = []
for i in range(5):
a.append(i*2)
print(a)
列表形式
[a * 2 for a in range(5)] ##列表形式 執行效率低 主要是先完成生成 再展現 占用內存
##同樣 可以傳入函數 還執行
def aa(name): print(‘ni hao %s‘%name ) print [a * 2 for a in range(5)] [aa(i) for i in range(5)]
生成器 :當你調用的時候還會給出結果 從而大大提高了調度性能
b = (a * 2 for a in range(50000))
print(b)
<generator object <genexpr> at 0x000000000256D3A8> ### 返回的只是一個內存地址
方法 b.next ()
python 3.x 是 b.__next__() 只能調取下一個 沒有別的 方法再調取 上一個
斐波那契
def aa(num): n,a,b = 0,0,1 while n < 10: print(b) a,b = b,a+b n+=1 aa(10)
列表生成
def aa(num): n,a,b = 0,0,1 whilen < 10: yield (b) ###當啟用yield的時候生成的結果是一個內存地址 變成了生成器 a,b = b,a+b n+=1 aa(10) ###返回值就變成了一個生成器 ###結果 <generator object aa at 0x00000000025AD3A8> cc = aa(10) print(cc.next()) print(‘-----------‘) ### 目前達到了隨意進出一個程序 來執行想要的操作 print(cc.next()) print(‘============‘)
3 -14 叠代 和列表 生成器