一、三元表达式
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.append('鸡蛋%s' %i)
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:
res.append(expression)
#3、优点:方便,改变了编程习惯,可称之为声明式编程
三、生成式
l=[]
for i in range(1,6):
if i > 3:
l.append(i)
print(l)
# 1、列表生成式
res=[i for i in range(1,6) if i > 3]
print(res)
# 2、集合生成式
res={i for i in range(1,6) if i > 3}
print(res,type(res))
# 3、字典生成式
items=[("name","egon"),('age',18),('gender','male')]
dict(items)
res={k:v for k,v in items if k != "age"}
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)