内置函数二

内置函数二
一.lamda匿名函数
lamda表示匿名函数,不需要用def来声明
语法:
函数名 = lanmbda 参数:返回值
注意:
1.函数的参数可以有多个.多个参数之间用逗号隔开
2.匿名函数不管多复杂.只能写一行,且逻辑结束后直接返回数据
3.返回值和正常的函数一样,可以是任意数据类型
f = lanmbda n:n*n
print(f(10))

二.sorted()
排序函数.
语法:sorted(lterable,key=None,reverse=False)
lterable:可迭代对象
key:排序规则(排序函数),在sorted内部会将可迭代对象中的每一个元素传递给
这个函数的参数,根据函数运算的结果进行排序
reverse:是否是倒叙.True:倒叙,False:正序
lst = [1,5,3,4,6]
lst2 = sorted(lst)
print(lst) #原列表不会改变
print(lst2) #返回的新列表是经过排序的

dic = {1:"a",7:"b",2:"c"}
print(sorted(dic)) #返回排序好的key值 [1,2,7]

和函数组合使用:
#根据字符串长度进行排序
lst = ["马化腾","中央情报局","仙湖"]
#计算字符串长度
def func(s):
return len(s)
print(sorted(lst,key=func)) #返回 ['仙湖', '马化腾', '中央情报局']

和lambda组合使用:
print(sorted(lst,key=lamda s:len(s)))

lst1 = [{"id":1,"age":13},
{"id":1,"age":58},
{"id":1,"age":28}]
对学生信息按照年龄排序
print(sorted(lst1,key=lamda e: e["age"])) # [{'id': 1, 'age': 12}, {'id': 1, 'age': 18}, {'id': 1, 'age': 59}]

三.filter()
筛选函数
语法:
filter(function.lterable)
function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function
然后根据function返回的True或者False来判断是否保留此项数据
lterable:可迭代对象

lst = [1,2,3,4,5]
lst1 = filter(lamda x: x%2==0,lst) #筛选所有的偶数
print(lst1)

lst1 = [{"id":1,"age":13},
{"id":1,"age":58},
{"id":1,"age":28}]
lst2 = filter(lamda e: e["age"]>18,lst1)) #筛选所以年龄大于18岁的人呢
print(list(lst2))
四.map()
映射函数
语法:map(function,iterable)可以对迭代对象中的每一个元素进行映射.
分别执行function
计算列表中每个元素的平方,返回新列表
def func(e):
return e*e
mp = map(func, [1,2,3,4,5])
print(mp)
print(list(mp)) # [1, 4, 9, 16, 25]
改成lamda:
print(list(map(lamda e:e*e, [1,2,3,4,5]))) #[1, 4, 9, 16, 25]


猜你喜欢

转载自www.cnblogs.com/caodneg7/p/9343822.html