三元運算,列表解析,生成器表示式

2021-10-06 07:35:55 字數 999 閱讀 9888

一,生成器就是可迭代物件,可以理解為一種資料型別,這種資料型別自動實現了迭代器協議。

1.生成器函式:常規函式定義,但是使用yield語句而不是return語句,yield可以返回多個值。可以保留函式的執行狀態。

2.第二行的式子稱為 三元表示式(沒有四元表示式,可以兩元)

name=『alex』

res=『hk』 if name==『song』 else 『pl』

print(res)

3.列表解析

l=[『雞蛋%s』 %i for i in range(5)]

print(l)

等價於:

egg_list=

for i in range(5):

print(egg_list)

可以改為三元表示式:

l=[『雞蛋%s』 %i for i in range(5) if i>3] #列表解析

print(l)

生成器的第二種表達方式:

a=(『雞蛋%s』 %i for i in range(5)) #生成器表示式

print(a)

print(l.next())

print(l.next())

生成器表示式更節省記憶體

import time

def test():

res=test()

print(res)

print(res.next())

print(res.next())

print(res.next())

每i執行一次next,將會輸出一次yield結果,再執行第二次next時,會在上次執行到的位置繼續往下執行,即可以保留函式的執行狀態。

三元運算,生成器表示式,列表解析

生成器是可迭代物件,可以理解成為一種資料型別,這種資料型別自動實現了迭代器協議 其他的資料型別需要呼叫自己內建的 iter 方法 在python中有兩種表現形式,一種是以函式的形式yield 二是生成器表示式 yield 函式 def test yield 1g test print g 輸出乙個生...

生成器表示式 三元表示式 列表解析

迭代器 s dog cat res s.iter print res.next print res.next 迭代器就是 iter laomuji 雞蛋 s i for i in range 10 生成器表示式不需要再呼叫iter res 雞蛋 s i for i in range 10 列表解析把...

生成器 三元運算 列表解析

一 什麼是生成器 可以理解為是一種資料型別,這種資料型別自動實現了迭代器協議 其他資料型別需要呼叫自身內建的 iter 方法 所以生成器是可迭代物件。二 生成器分類及在python中的表現形式 1 生成器函式 常規函式定義,但是,使用yield語句而不是return語句返回結果。yield語句一次返...