
编程开发
切片copy
当我们需要在Go语言中复制一个切片时,我们可以使用内置的copy函数。copy函数可以将一个切片的元素复制到另一个切片中。下面是一个示例: 在上面的示例中,我们首先创建了一个源切片
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
def wulaoer(a,b):
return a * b
wolf = lambda a,b: a * b
print("普通函数直接调用,返回结果:",wulaoer(2,7))
print("匿名函数赋值给变量,返回结果:",wolf(2,5))
打印结果:
普通函数直接调用,返回结果: 14 匿名函数赋值给变量,返回结果: 10这个是普通的匿名函数直接转换,匿名函数只能赋值给变量后才可以调用,不能直接调用,匿名函数只能使用简单的表达式,下面看稍微比较复杂一点的匿名函数表达式的例子:
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
def devops(x,y):
if x > y:
return x ** y
else:
return x / y
golong=lambda x,y:x ** y if x > y else x / y
print("三元运算函数,,返回结果:",devops(2,7))
print("三元运算函数转成匿名函数,返回结果:",golong(2,7))
打印结果:
三元运算函数,,返回结果: 0.2857142857142857 三元运算函数转成匿名函数,返回结果: 0.2857142857142857匿名函数在调用的时候判断前面式True,后面是False,所以这个顺序需要表达清楚,lambda相当于函数中的def,x,y相当于函数的参数,后面是函数的表达式,参数和表达式之间使用了":"进行分割,后面就是匿名函数的表达式,匿名函数比较常用,下面看一下匿名函数的使用场景。
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[1,2,3,4,5,6]
for t,i in enumerate(python3):
python3[t]=i*i
print("for循环遍历列表元素平方:",python3)
python3=[1,2,3,4,5,6]
DevOps=list(map(lambda x:x*x,python3))
print("匿名函数结合map函数:",DevOps)
打印结果:
for循环遍历列表元素平方: [1, 4, 9, 16, 25, 36] 匿名函数结合map函数: [1, 4, 9, 16, 25, 36]匿名函数作为一个参数,传到map函数中,直接返回结果,上面赋值给一个变量,不过也不是函数,只是一个变量值。可以直接打印不需要调用。
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[1,2,3,4,5]
nginx= 1
for i in python3:
nginx*=i
print("序列累计结果:",nginx)
from functools import reduce
DevOps = reduce(lambda x,y: x * y ,python3)
print("匿名函数结合reduce函数:",DevOps)
打印结果:
序列累计结果: 120 匿名函数结合reduce函数: 120匿名函数作为一个参数,传入到reduce函数中,对匿名函数返回的结果进行求积。所以,最终reduce的函数会对匿名函数返回的所有序列进行累积计算操作。下面看一下filter函数:
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[1,2,3,4,5]
DevOps=list(filter(lambda x:x % 2 == 1,python3))
print("只保留奇数:",DevOps)
DevOps=list(filter(lambda x:x % 2 == 0,python3))
print("只保留偶数:",DevOps)
linux=list(range(100,200))
DevOps=list(filter(lambda x:int(str(x))==int(str(x)[::-1]),linux))
print("匿名函数结合filter函数,找出回力数:",DevOps)
打印结果:
只保留奇数: [1, 3, 5] 只保留偶数: [2, 4] 匿名函数结合filter函数,找出回力数: [101, 111, 121, 131, 141, 151, 161, 171, 181, 191]filter函数会对传入的参数进行筛选,这里使用的偶数和奇数都是针对filter函数中作为参数的匿名函数的所有元素进行了一个判断,然后筛选。最后一个是对所有元素进行一个去掉筛选。
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[-2,5,9,-10,6]
DevOps=sorted(python3,key=lambda x:abs(x))
print("根据据绝对值进行排序",DevOps)
python3=["golong","nginx","jenkins","mysql","tomcat"]
DevOps=sorted(python3,key=lambda x:x[0])
print("根据首字母进行排序",DevOps)
python3= [('golong', 75), ('nginx', 92), ('mysql', 66), ('jenkins', 88)]
DevOps=sorted(python3, key = lambda x : x[0])
print("根据名字进行排序",DevOps)
DevOps=sorted(python3, key = lambda x : x[1], reverse=True)
print("根据成绩进行排序:",DevOps)
输出结果:
根据据绝对值进行排序 [-2, 5, 6, 9, -10]
根据首字母进行排序 ['golong', 'jenkins', 'mysql', 'nginx', 'tomcat']
根据名字进行排序 [('golong', 75), ('jenkins', 88), ('mysql', 66), ('nginx', 92)]
根据成绩进行排序: [('nginx', 92), ('jenkins', 88), ('golong', 75), ('mysql', 66)]
这个是针对sorted函数进行一个排序,作为匿名函数的参数,出入的是一个列表或者远足,真对排序时使用了排序方式,reverse,排序方向默认时从小到大,reverse=True是从大到小的排序,这就是匿名函数的用法,和相关场景涉及到的使用方法。
评论 0