#列表生成式,能簡化很多**
#第一項寫需要輸出的東西(i*i),中間寫for迴圈,後面寫條件
li = [i*i for i in xrange(1,10) if i%2==0]
print li
[4, 16, 36, 64]
#列表生成器,他跟列表生成式的區別相當range和xrange的區別,資料大的時候節省記憶體空間
#最簡單的辦法就把原來的換成()就可以了,不過輸出變成了迭代物件
li1 = (i*i for i in xrange(1,10) if i%2==0)
for i in li1:
print i
4 16
36 64
#函式中的列表生成器
#函式中包含yield語句的函式會被特地的編譯成生成器,當函式被呼叫時,他們返回乙個生成器物件
#每當遇到yield的時候,可以當成return
def f(n):
sum = 0
i = 0
while(isum +=i
i +=1
yield(sum)
print (type(f(5)))
for i in f(5):
print(i)
type 『generator』
0 1
3 6
10#列表生成式:一次性生成所有的資料,然後儲存在記憶體中,適合小量資料
#列表生成器:返回乙個可迭代物件,即『generator』物件,必須通過迴圈才能一一取出資料
#可迭代物件:可以通過迴圈呼叫出來的,就是可迭代物件
列印9*9乘法表
#i取值範圍為1, 2, 3, 4, 5, 6, 7, 8, 9
for i in xrange(1,10):
#每個內層for迴圈結束後換行,即在輸出完九九乘法表一行後換行。
#j取值範圍為1, 2, ..., i
for j in xrange(1,i+1):
#逗號用來取消自動換行
print '%d*%d = %d' %(i,j,i*j),
裝飾器,生成器,迭代器
裝飾器 import time def show time func def inner x start time time.time func x end time time.time print end time start time return inner show time def add...
迭代器 生成器 裝飾器
1.迭代器 1 定義 同時滿足 iter 方法和next 方法的物件就是迭代器。3 型別 可迭代物件通過iter 轉為迭代器 生成器是一種特殊的迭代器。2.生成器 1 定義 生成器是迭代器的一種,包括含有yield關鍵字函式和生成器表示式。2 用法 所有函式呼叫的引數都是第一次呼叫時保留的,而不是新...
生成器 迭代器 裝飾器
迭代器表面上看是乙個資料流物件或者容器,當使用其中的資料時,每次從資料流中取出乙個資料,直到資料被取完,而且資料不會被重複使用。從 的角度來看,迭代器是實現了迭代器協議方法的物件和類。迭代器協議方法主要是兩個 iter 該方法返回物件本身,它是for語句使用迭代器的要求 next 方法用於返回容器中...