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

2022-06-26 16:33:14 字數 2058 閱讀 1646

1  三元表示式

2  列表推導式和生成器表示式

def my_max(x,y):   #

low的寫法

if x >=y:

return

x

else

:

return

yx=10y=20res=x if x >= y else y #

三元表示式

print

(res)

name=input('

>>:

').strip()

res='sb'

if name == '

alex

'else'nb

'#三元表示式

print(res)

1、列表推導式,用

#

第一種 列表推導式

l=['

egg'+str(i) for i in range(1,11)]

print

(l)#l=#

for i in range(1,11):

#res='egg'+str(i)##

print(l)

#第二種 列表推導式

l1=['

egg'+str(i) for i in range(1,11) if i >= 6]

print

(l1)

#l1=

#for i in range(1,11):

#if i >= 6:

#

2、語法:

#

語法[expression for item1 in iterable1 if

condition1

for item2 in iterable2 if

condition2

...for itemn in iterablen if

conditionn

]類似於

res=

for item1 in

iterable1:

ifcondition1:

for item2 in

iterable2:

ifcondition2

...for itemn in

iterablen:

ifconditionn:

把列表推導式的換成()就是生成器表示式
優點:省記憶體,一次只產生乙個值在記憶體中
g=('

egg'+str(i) for i in range(0,100000000000000000000000)) #

生成器表示式

print

(g)print

(next(g))

print

(next(g))

print(next(g))

names=['

egon

','alex_sb

','wupeiqi

','yuanhao']

names=[name.upper() for name in names] #

列表內容都大寫

print

(names)

sbs=[name for name in names if name.endswith('

sb')] #

篩選以sb結尾的名字

print

(sbs)

print(max([1,2,3,4,5])) #

max的引數可以是可迭代器的物件

g=(i for i in range(10))

print(max(g)) #

max的引數可以是生成器

with open(

'a.txt

','r

',encoding='

utf-8

') as f:

print(sum(len(line) for line in f)) #

檔案的長度

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

一 三元表示式 def max2 x,y if x y return x else return y res 條件成立時執行的表示式 if 條件 else 條件不成立時執行的表示式 x 11 y 22 res x 12 if x y else y 100 print res 二 列表推導式 1 示例...

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

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

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

一,生成器 1,生成器的本質就是迭代器 2,生成器的特點和迭代器一樣.取值方式和迭代器一樣 next send 給上乙個yield傳值 3,生成器一般由生成器函式或者生成器表示式來建立 4,其實就是手寫的迭代器 只要函式內部包含有yield關鍵字,那麼函式名 的到的結果就是生成器,並且不會執行函式內...