lt = (i for i in range(2))#轉換為列表
#print(list(lt))
#乙個乙個獲取,取完後繼續使用next會報錯
#print(next(lt))#遍歷
for i in
lt:
print(i)
說明:任意方式的使用生成器,都只能時單次的。
deftest(n):
for i in range(1, n+1):
yield
it = test(5)
#生成器物件
(t)#
一次乙個獲取
#print(next(t))
#print(next(t))
#print(next(t))#遍歷
#for i in t:
#print(i)
#轉換為列表
print(list(t))
總結:
from collections importiterator
lt = (i for i in range(10))
print(isinstance(lt, iterator))
將可迭代物件轉換為迭代器,使用專門的函式iter
示例:
lt = [1, 2, 3, 4]defdouble(x):
return x * 2
#返回乙個生成器
#m = map(double, lt)
m = map(lambda x: x*x, lt)
print(list(m))
filter
示例:
lt = [1, 2, 3, 4, 5]#提取偶數
f = filter(lambda x: x%2==0, lt)
print(list(f))
reduce
示例:
from functools importreduce
lt = [1, 2, 3, 4, 5]#求和
#s = reduce(lambda x,y: x+y, lt)
#轉換為12345
s = reduce(lambda x,y: x*10+y, lt)
print(s)
傳入n,計算
1!+2!+3!+...+n!
可以使用遞迴
Python基礎08 遞迴函式 內建函式
如果乙個函式在內部呼叫自己本身,這個函式就是遞迴函式。在使用遞迴時,需要注意以下幾點 1 自己呼叫自己 2 必須有乙個明確的遞迴結束條件,稱為遞迴出口。練習1 使用遞迴函式向控制台列印3,2,1 def print num num print num if num 1 return print nu...
Python自學 08 函式基礎(上)
就像中學所學的一樣,也可以稱之為 方法 可以用來解決各種數學計算或者實現切合實際的功能,例如計算圓的面積 s pi r r,只要知道半徑,什麼圓的面積都可以計算出來。這就是一種抽象,再舉個栗子 計算數列的和 1 2 3 100,可以抽象記成 而電腦程式也是一樣,函式就是一種最基本的一種 抽象的方式。...
Python基礎08 模組
在我們開發過程中,往往不會將所有的功能函式集中定義在同乙個檔案中。這樣做即增加了未來維護的成本,也降低了並行開發的效率。通常我們會將不同的功能寫在不同的py檔案中,而這些py檔案就稱為模組。import math 矩形面積 def rectangle x,y return x y 圓形面積 def ...