1. 程式人生 > >3 -14 叠代 和列表 生成器

3 -14 叠代 和列表 生成器

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
    while
n < 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 叠代 和列表 生成器