day12

今日内容
递归函数
三元表达式、列表生成式、字典生成式
内置函数和匿名函数
 
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')
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)
5、匿名函数:
  普通函数:
  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])
  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))
 
 
原文地址:https://www.cnblogs.com/yaoxiaofeng/p/9426986.html