Python 内置(builtins)的高阶函数 map,filter,sorted,递归

map函数:

格式:

  map(func , *iterables)

作用:

  用函数对可迭代对象中的每一个元素作为参数计算出新的迭代对象,当最短的一个可迭代对象不在提供数据时,此可迭代对象生成结束。
第一个参数一定是函数,后面是均是迭代对象,返回可迭代对象。
实例:

# 生成一个可迭代对象,要求此可迭代对象可以生成1—9自然数的平方。
# 1,4,9,16…81
def power2(x)
  return x**2
fox x in map (power2,range(1,10)):
  print (x)

# 求以上数据的和 print(sum(map(power,range(1,10))))

  

pow()函数

实例:
  生成一个可迭代对象,要求此可迭代对象生成

# 1**4,2**3,3**2,4**1
for x in map(pow,[1,2,3,4],[4,3,2,1])
  print(x)

filter函数

格式:

  filter(func,iterable)

作用:
  筛选可迭代对象iterable中的数据,返回一个可迭代对象,此可迭代对象将对iterable进行筛选
函数func将对iterable中的每个元素进行求值,返回False时将此数据丢弃,返回True,则保留此数据
实例:

1 #isodd函数判断x是否为奇数,奇数返回True
2 def isodd(x)
3   return x % 2 ==1
4 #打印10以内的奇数
5 for x in filter(isodd,range(10)):
6   print (x)

7 #打印10以内的偶数 8 L= [x for x in filter(lambda x: x%2==0,ranger(10))]

sorted函数 

 

格式:
  sorted(iterable,key=None,reverse=False)

参数说明:
  key 绑定函数,此函数可用来提供一个排序的依据
  reverse标志用来是否降序

作用:
  将原可迭代的对象数据进行排序,生成排序后的列表
实例:

L = [5 , -2 , -4 , 0 , 3 , 1]
L4 = sorted(L, key=abs)
L4 = [0 , 1 , -2 , 3 , -4 ,5 ]

递归函数 recursion

函数直接或间接的调用自身,要控制递归的层数
示例:

# 直接调用自身
def f():
  f() #调用自己
  f()
  print ("调用自身") # 间接调用自身 def fa():   fb() def fb()   fa() fa()

说明:
  递归一定要控制递归的层数,当符合某一条件时要终止递归,几乎所有的递归都能用循环来代替
优点:
  递归可以把问题简单化,让路径更为清晰,代码更为简洁
缺点:
  递归因系统环境影响大,当递归深度太大时,可以会得到不可预知的结果。
示例:
  求:100 +99 +98 +97+ ..+1 :
分析:
  先假设musum() 已经完成且能求x+(x-1)+..+1的和

def mysum(x):
#选判断终止条件
  if x == 1:
    return 1 
  return x+ mysum(x-1)
print (musum(100)) #5050

  

posted @ 2019-08-11 22:39  朕只是抬抬手  阅读(377)  评论(0)    收藏  举报