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

2022-08-14 20:45:12 字數 2001 閱讀 1729

一、三元表示式

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、示例

egg_list=

for i in range(10):

egg_list=['雞蛋%s' %i for i in range(10)]

#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:

if condition1:

for item2 in iterable2:

if condition2

...for itemn in iterablen:

if conditionn:

#3、優點:方便,改變了程式設計習慣,可稱之為宣告式程式設計

三、生成式

l=

for i in range(1,6):

if i > 3:

print(l)

# 1、列表生成式

res=[i for i in range(1,6) if i > 3]

print(res)

# 2、集合生成式

res=

print(res,type(res))

# 3、字典生成式

items=[("name","egon"),('age',18),('gender','male')]

dict(items)

res=

print(res,type(res))

# 4、生成器表示式

res = (i for i in range(1, 6) if i > 3)

print(res)

print(next(res))

print(next(res))

print(next(res))

def my_sum(nums,res=0):

for num in nums:

res+=num

return res

四、了解部分

1、map函式

salaries=[1000,2000,3000,4000,5000]

res=map(lambda num:num*12,salaries)

print

(res)

print

(list(res))

print((num*12 for num in

salaries))

2、filter函式

names=['

egon

',"alex_dsb

","liuqingzheng_dsb"]

res=filter(lambda n:n.endswith("

dsb"

),names)

print

(res)

print([name for name in names if name.endswith('

dsb'

)])3、reduce函式

from functools import

reduce

res=reduce(lambda x,y:x+y,[1,2],100)

print(res)

了解:map、filter、reduce

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

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

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

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 ...

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

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