接入网站备案要多久,如何在线上注册公司,微信ios分身版下载,专业柳州网站建设哪家便宜#x1f308;个人主页#xff1a;羽晨同学
#x1f4ab;个人格言:“成为自己未来的主人~” 高阶函数之map
高阶函数就是说#xff0c;A函数作为B函数的参数#xff0c;B函数就是高阶函数
map#xff1a;映射
map(func,iterable)
这个是map的基本语法#xff0c;…
个人主页羽晨同学
个人格言:“成为自己未来的主人~” 高阶函数之map
高阶函数就是说A函数作为B函数的参数B函数就是高阶函数
map映射
map(func,iterable)
这个是map的基本语法它的返回值是一个iterator返回一个容器和迭代器。
我们来看下面的这一段代码
list1 [n**2 for n in range(1,6)]
print(list1)
在这段代码中我们将生成的元素放入了列表当中然后我们打印这个列表。 这个是这个代码执行出来的结果。
此时若我们不放在list当中而是存放到一个变量当中然后打印这个变量我们来看看打印出来的是什么
r1(n**2 for n in range(1,6))
print(r1) # generator object genexpr at 0x000002548E2998A0 这个时候的r1就是一个生成器
如果我们还想要访问这个生成器当中的元素我们需要再放入列表当中。
print(list(r1))
然后我们执行代码。 我们可以看到里面的值被打印了出来。
而对应的我们定义一个函数。
def func1(x):return x**2
rl1 map(func1,range(1,6))
print(rl1) # map object at 0x00000178A7BEAC50
这个时候打印出来的值为# map object at 0x00000178A7BEAC50
如果我们想要得到里面的数字我们就需要将它也放到列表当中去。
print(list(rl1))
我们除了定义这个函数我们也可以采用匿名函数的方式。
# 匿名函数
rl2map(lambda x:x**2,range(1,6))
print(rl2)
如果我们想要传入多个参数呢我们应该怎么进行操作。
# 2.
def func2(a,b):print(a,b)return ab
r21 map(func2,[1,2,3],[4,5,6]) 这个是我们对应的执行结果。
若是我们将这个换成匿名函数则应该写成下面这样子。
r22map(lambda a,b:ab,[1,2,3],[4,5,6])
print(list(r22)) map中的func函数需要设置几个参数取决于有几个iterable参与运算 map的工作原理是将多个iterable想用位置的元素同时传参给func 高阶函数之reduced 语法 reduced(func,sex) sex一般是有序的序列
首先将sex中的第0个元素和第一个元素传递给func进行运算返回结果1接着将结果1和第二个元素传递给func进行运算返回结果2直到所有的元素都参与了运算表示运算结束。 需要注意的有下面几点 func函数需要设置至少两个参数表示数量的减少区别于mapreduced在使用之前一定要先导入 导入模块如下
import functools
functools.reduce()
我们接下来做个例子
求1-100之间所有整数的和
r1 functools.reduce(func1,range(1,101))
print(r1) # 5050r2functools.reduce(lambda x,y:xy,range(1,101))
print(r2)
这样子的话我们就可以完美的实现这个功能。
高阶函数之sorted
我们之前学过在python中利用sort进行排序我们来举一个例子
list1[34,637,234,2,6,89]
list1.sort()
print(list1)
利用这个代码我们就可以实现列表从低到高的排序。
那么利用sorted我们也可以这样我们来看下面的这一段代码
list1[34,637,234,2,6,89]
list2sorted(list1,reverseFalse)
print(list1)
print(list2) 你看这个代码我们也完美实现了我们想要的功能那么这两个有什么区别呢
其实你看我们的代码也可以看出来当使用sorted的时候我们可以将排序好的赋值到一个新的变量中而原来变量中值并不会发生改变。
高阶函数之fliter()
语法
高阶函数之filter()
filter(func,iterable): 过滤func:函数itearble:可迭代对象
这个函数的作用是将iterable中的元素依次传递给func,根据func的返回值来决定是否保留这个元素如果返回值是True,那么就保留反之就不保留。
我们来看一个例子
# 1. 已知列表list1 [34,56,23,34,7,8,19,45,7,9,10,46,7979] 跳出其中的偶数
list1 [34,56,23,34,7,8,19,45,7,9,10,46,7979]
def func1(x):if x %20:return Trueelse:return False
it filter(func1,list1)
print(list(it))
我们也可以使用匿名函数来实现这个功能
r2filter(lambda x:x % 20,list1)
print(r2)好了我们这篇文章的内容就到这里我们下次再见。