生成器和三元表示式

2022-06-26 02:57:08 字數 1415 閱讀 2143

一、生成器

1、生成器:

生成器就是一種自定義的迭代器

2、為何要用生成器:

為了節省記憶體

3、如何用生成器:

函式體內但凡出現yield關鍵字,呼叫函式將不會觸發函式體**的執行,而是會返回乙個生成器物件,生成器本質就是乙個迭代器

4、yield與return:

相同點:在返回值角度用法一樣

不同點:yield可以返回值多次值,而return只能返回一次

yield可以暫停函式,然後我們可以用next方法觸發函式**的執行-》協程

示例:

def func():

print("11111")

yield 1

print("22222")

yield 2

print("33333")

yield 3

print("4444")

g=func().__iter__()

print(g) # 生成器本質就是乙個迭代器

print(next(g))

print(next(g))

print(next(g))

**********====》

11111

122222

233333

3

def my_range(start,stop,step=1):

while start < stop:

yield start

start+=step

for i in my_range(0,10,2):

print(i)

***************==》02

468

二、三元表示式

三元表示式:if的一種簡易表達

好處:**行數減少,可讀性高

通常的if格式:

def max2(x, y):

if x > y:

return x

else:

return y

res = max2(11, 22)

print(res)

*****====》

22

三元if格式:

x = 11

y = 22

res = x if x > y else y

print(res)

res = "ok" if 10 > 3 else "no"

print(res)

**********==》

22ok

三元表示式,生成式,生成器表示式

使用函式來寫 defmax2 x,y if x y return x else return y res max2 3,4 print res 4?使用三元表示式 x 3 y 4 res x if x y else y print res 3,4 4 函式加三元表示式 defmax2 x,y ret...

三元表示式 推導式和生成器表示式

三元表示式是python為我們提供的一種簡化簡單的流程控制的解決方案 而且在簡化 的基礎上,還不失 的可讀性 條件成立時返回的值 if 條件 else 條件不成立時返回的值 x if x y else y 如果x y就執行x,否則執行y需求 接收兩個數字,返回較大的那個數 不採用三元表示式 def ...

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

1三元表示式 三元表示式是python為我們提供的一種簡化 的解決方案,語法如下 res 條件成立時返回的值 if 條件 else 條件不成立時返回的值 針對以下場景 def max2 x,y if x y print x else print y max2 1,2 用三元表示式可以一行解決 x 1...