Python高阶函数详解编程语言

import random
from functools import reduce
#高阶函数,就是一个函数可以接收另一个函数作为参数的函数,scala与之类似
#定义普通函数,自动生成列表
def getList():
  hList = list(range(5))
  return [key * random.randint(0,3) for key in hList] #生成随机数
#定义普通函数,求不同列表中最大并集
def getMaxSet(listA,listB):
  setA = set(listA) #转为set
  setB = set(listB)
  setAll = setA | setB #求并集
  return list(setAll)#转为list
#定义高阶函数
def highFunction(listA,listB,getMaxSet):
  return getMaxSet(listA,listB)

listA = getList()
print(listA)
listB = getList()
print(listB)
#调用高阶函数
values = highFunction(listA,listB,getMaxSet)
print(values)

#Python内嵌的高阶函数map,reduce.filter,sorted.
#map(f,Iterable):f;要执行的操作,Iterable:可循环
def mapF(arg):
  return (arg,1)
maps = map(mapF, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(maps))
#reduce(f,Iterable):f;要执行的操作,Iterable:可循环
def reduceF(arg1,arg2):
  return arg1 + arg2
reduces = reduce(reduceF, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(reduces)
#filter(f,Iterable)
#strip()用于移除字符串头尾指定的字符(默认为空格或换行符)
def del_empty(s):
  return s and s.strip()#异常:没有实现去除空格的功能
filterList = list(filter(del_empty, [” a”, “”, “b “, None, “v”, ” “]))
print(filterList)
#基础sort()
print(sorted([36, 5, -12, 9, -21])) #数字型按大小
print(sorted([“36”, “5”, “-12”, “9”, “-21”])) #字符串按ASCII码
#进阶
print(sorted([36, 5, -12, 9, -21], key=abs))#先取绝对值,再排序(不影响原数据)
print(sorted([‘bob’, ‘about’, ‘Zoo’, ‘Credit’], key=str.lower, reverse=True)) #先转成小写,按转置排序(不影响原数据)

测试结果:

Python高阶函数详解编程语言

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/13014.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论