函式迭代器 生成器 簡單lambda

2021-09-22 02:07:29 字數 1943 閱讀 2738

iter()函式用來生成迭代器

#迭代器測試

a_list = [1, 2, 3]

for i in iter(a_list):

print(i)

for i in a_list:

print(i)

range(start, stop[, step])

引數說明:

start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5);

stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5

step:步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)

range(10)        # 從 0 開始到 10

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(1, 11) # 從 1 開始到 11

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

range(0, 30, 5) # 步長為 5

[0, 5, 10, 15, 20, 25]

range(0, 10, 3) # 步長為 3

[0, 3, 6, 9]

range(0, -10, -1) # 負數

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

range(0)

range(1, 0)

range的步長必須是整數

,不能是小數

自定義range函式

# 自定義range函式

def frange(start, stop, step):

x = start

while x < stop:

yield x

x += step

for i in frange(1, 10 ,0.5):

print(i)

yield

yeild是乙個generator(生成器)。

yield是乙個類似return的關鍵字,只不過,帶有yield的函式,不再是乙個普通的函式,而是乙個生成器。在執行中,呼叫next()方法才開始真正執行(for迴圈自動呼叫next方法)。

yeild的作用就是把乙個函式變成generator,帶有yeild的函式不再是乙個普通的函式,python直譯器會將其視為乙個generator。

帶有yeild的函式雖然在執行流程上看起來和普通函式一樣,但實際上每執行到yeild的語句,函式就中斷,停止執行,每次中斷都會通過yeild返回乙個當前的迭代值。下次執行的時候從yeild的下一句開始執行,而函式的本地變數看起來和上一次中斷執行前是完全一致的,於是函式繼續往下執行,直到再次遇到yeild。

lambda

###**高亮

def add(x, y):

return x+y

lambda x, y: x+y

print(add(3, 4))

lambda與def的區別:

1)def建立的方法是有名稱的,而lambda沒有。

2)lambda會返回乙個函式物件,但這個物件不會賦給乙個識別符號,而def則會把函式物件賦值給乙個變數(函式名)。

3)lambda只是乙個表示式,而def則是乙個語句。

4)lambda表示式」 : 「後面,只能有乙個表示式,def則可以有多個。

5)像if或for或print等語句不能用於lambda中,def可以。

6)lambda一般用來定義簡單的函式,而def可以定義複雜的函式。

7)lambda函式不能共享給別的程式呼叫,def可以。

lambda語法格式:

lambda 變數 : 要執行的語句

函式 生成器 迭代器

1.函式 1 函式的好處就是能將固定功能的模組封裝起來,在需要多次實現這個功能的時候就呼叫函式避免 的重複書寫,過於冗長 2 傳參 依次往後放這是規定 num,args,a 2,kwargs 中間兩個交換位置不影響 位置引數 引數關鍵字引數 引數 3 返回值函式執行沒遇到return返回值一定為no...

生成器 迭代器

最近見天一直在看廖大的python教程,卻發現很多基礎看著很簡單,但卻不會應用,歸根結底還是因為理解不到位,故而又將教程學了一遍,並將自己的理解記錄一下,也方便後面查閱。由於沒有相關程式設計基礎,有些理解可能是錯的,敬請批評指正。想深入具體學習廖大部落格請移步廖雪峰的官方 有時候用迴圈生成列表太過繁...

迭代器,生成器

迭代器 生成器 生成器的第1種實現方式 列表生成式改為生成器 python中yield關鍵字 函式中如果有yield,那麼呼叫這個函式的返回值為生成器。當生成器g呼叫next方法,執行函式,知道遇到yield就停止 再執行next,從上一次停止的地方繼續執行 函式中遇return直接退出,不繼續執行...