一.filter()筛选函数
语法:filter(funcition,Iterable)
lst = [1,2,3,4,5,6,7] ll = filter(lambda y: y%2==0, lst) print(list(ll)) #筛选所有偶数,不加list,打印内存地址
二.map()映射函数
可以对可迭代对象的每一个元素进行映射,分别取执行function
def func(n): return n*n lst = map(func,[1,2,3,4,5]) print(lst) #打印内存地址 print(list(lst)) # 打印列表中数字的平方
三.sorted()排序函数
语法:sorted(Iterable,key=None,reverse=False)
Iterable:可迭代对象
key:排序规则(排序函数),在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数,根据函数运算的结果进行排序
reverse:是否是倒叙. True:倒叙,False:正序
lst = [1,5,6,4,3]
new_lst = sorted(lst)
print(lst) #原列表不会变
print(new_lst) #新列表是从小到大排序
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
print(sorted(lst,key=lambda s:len(s))) #还可以和lamda一起用
dic = {1:"a",3:"b",2:"c"}
dic1 = sorted(dic)
print(dic1) #如果是字典,返回排序后的key
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
def func(s):
return len(s)
print(sorted(lst,key = func)) #还可以和函数一起用,按字符串长度排序
四.lamda
表示的是匿名函数,不需要def来声明,一句话就可以声明出一个函数
语法:函数名=lamda 参数:返回值
注意:
1.函数的参数可以有多个,多个参数之间用逗号隔开
2.匿名函数不管多复杂.只能写一行,且逻辑结束后直接返回数据
3.返回值和正常的函数一样,可以是任意数据类型
匿名函数并不是说一定没有名字,这里的变量就是一个函数名,说他是匿名原因是我们通过__name__查看的时候是没有名字的,统一都叫lamda,在调用的时候没有什么特别之处.
def func(n)
return n**n
print(func(10))
f = lamda n :n**n
print(f(10))