匿名函数和内置函数

匿名函数

匿名函数就是没有名字的函数

lambda:1

PS:冒号左边时参数,右边是返回值

因为没有名字,而函数的调用就是通过函数名+()

匿名函数单独使用毫无意义,它是配合内置函数一起使用

匿名函数需要一次性使用

内置函数

python内部提供的内置方法

max:最大值 max(可迭代对象)
min:最小值 min(可迭代对象)
l1 = [1, 2, 3, 4, 5]
# 打印出l1列表中最大的值
print(max(l1))
# 打印出l1列表中最小的值
print(min(l1))

上边匿名函数中说道能和内置函数一起使用,让我们来看一下

dict1 = {
    'tank':500,
    'sean':400,
    'egon':600
}
print(max(dict1,key= lambda x:dict1[x]))
print(min(dict1,key= lambda x:dict1[x]))
sorted:排序,默认升序(从小到大)
l1 = [6, 1, 2, 3, 4, 5]
# 给l1从小到大排序
print(sorted(l1))
他还有个参数reverse:反转(倒序)它的默认参数是False

reverse True 降序

# 给l1从大到小排序
print(sorted(l1,reverse=True))

结合dict1和匿名函数我们给dict1排一下序

dict1 = {
    'tank':500,
    'sean':400,
    'egon':600
}
# 按照dict1中的value从小到大排序,返回key
print(sorted(dict1,key= lambda x:dict1[x]))
# 按照dict1中的value从大到小排序,返回key
print(sorted(dict1,key= lambda x:dict1[x],reverse=True))

map():映射

语法:

map(函数地址(func),可迭代对象)---->map对象

map会将可迭代对象中的每一个值进行修改,然后映射一个map对象中,可以再将map对象转换成列表或元组

注意:生成器(迭代器)用一次就用完了,所以用完后就不能再取了

l1 = ['a','b','c','d']
# 如果列表里有'a'在后面加'_1'如果不是就加'_2'
res = map(lambda x:x+'_1' if x == 'a' else x + '_2' ,l1)
print(list(res))
# 生成器(迭代器)用一次就用完了,所以用完后就不能再取了
print(tuple(res))   # 这时打印出来的就是空元组()

reduce():合并

语法:

reduce(函数地址(func),可迭代对象,初始值(初始值默认为0))

每次从可迭代对象中获取两个值进行合并

from functools import reduce
# 计算1-100的和后再加1000
res = reduce(lambda x,y:x+y,range(1,101),1000)
print(res)		# 打印结果6050

filter():过滤

语法:

filter(函数地址(func),可迭代对象)

filter会将函数中返回结果为True的对应的参数值过滤出来

过滤出来的值会添加到filter对象中

list1 = ['a_1', 'b_2', 'c_2', 'd_2']
# 将后缀名为_1的元素过滤出来
res = filter(lambda x:x.endswith('_1'),list1)
print(res)			# <filter object at 0x000002B7C2477648>
print(list(res))	# ['a_1']
原文地址:https://www.cnblogs.com/aheng/p/11859364.html