今日内容
递归函数
三元表达式、列表生成式、字典生成式
内置函数和匿名函数
递归函数
三元表达式、列表生成式、字典生成式
内置函数和匿名函数
1、递归函数
什么是递归?
函数的递归调用是函数嵌套的一种特殊形式,再调用一个函数的过程中有直接或者间接地调用了该函数本身,陈伟函数的递归调用。
递归调用必须有两个明确的阶段:
1、回溯:一次次递归调用下去,但需要注意每一次递归,问题的规模是都应该有所减少的,知道逼近一个最终的结果。但一定需要有一个明确的结束条件。
2、递推:往回一层一层推算出结果。
1.1、二分法:
list1 = [1,2,3,4,5,6,7,8,9,10,11,12,25,53,351,1235]
def check(list1)
x = 53 #需要查找的数
mid_index = len(list1)//2
if x > list1[mid_index]:
list1 = list1[mid_index:]
check(list1)
elif x < list1[mid_index]:
list1 = list1[:mid_index]
check(list1)
else:
print('LOOK It')
什么是递归?
函数的递归调用是函数嵌套的一种特殊形式,再调用一个函数的过程中有直接或者间接地调用了该函数本身,陈伟函数的递归调用。
递归调用必须有两个明确的阶段:
1、回溯:一次次递归调用下去,但需要注意每一次递归,问题的规模是都应该有所减少的,知道逼近一个最终的结果。但一定需要有一个明确的结束条件。
2、递推:往回一层一层推算出结果。
1.1、二分法:
list1 = [1,2,3,4,5,6,7,8,9,10,11,12,25,53,351,1235]
def check(list1)
x = 53 #需要查找的数
mid_index = len(list1)//2
if x > list1[mid_index]:
list1 = list1[mid_index:]
check(list1)
elif x < list1[mid_index]:
list1 = list1[:mid_index]
check(list1)
else:
print('LOOK It')
2、三元表达式:
x=1
res = 'is good' if x == 1 else 'is better'
print(res)
3、列表生成式:
L1 = ['A','B','C']
L2 =[]
L2 = [i + '_D' for i in L1]
print(L2)
4、字典生成式:
L1 = ['A','B','C']
L2 = ['a','b','c']
dic = {k:L2[i] for i,k in enumerate(L1)}
print(dic)
x=1
res = 'is good' if x == 1 else 'is better'
print(res)
3、列表生成式:
L1 = ['A','B','C']
L2 =[]
L2 = [i + '_D' for i in L1]
print(L2)
4、字典生成式:
L1 = ['A','B','C']
L2 = ['a','b','c']
dic = {k:L2[i] for i,k in enumerate(L1)}
print(dic)
5、匿名函数:
普通函数:
def sum(x,y)
return x+y
匿名函数:
print((lambda x,y:x+y)(1,2))
普通函数:
def sum(x,y)
return x+y
匿名函数:
print((lambda x,y:x+y)(1,2))
6、内置方法:
salaries={'egon':300000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000}
max取最大值:
res = max(salaries,key = lambda name:sarlies[name])
salaries={'egon':300000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000}
max取最大值:
res = max(salaries,key = lambda name:sarlies[name])
print (res)
min取最小值:
res = min(salaries,key = lambda name : sarlies[name])
print(res)
sorted排序:
res = sorted(salaries,key lambda name:sarlies[name])
print(res)
map映射:
list1 = ['A','B','C']
res = map(lambda name:name+'_good',list1)
print(list(res))
filter过滤:
list1 = ['A_a','B_a','C']
res = filter(lambda name:name.endswith('a'),list1)
print(list(res))