匿名函数,内置函数

lambda

lambda 函数也叫匿名函数,也就是没有名字的函数算法

lambda匿名函数的格式:冒号前是参数,能够有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。函数

一般和内置函数一块儿使用code

lambda函数的特色和使用场景
特色对象

'''
从函数命名的角度:匿名,直接返回可供调用的值
从输入输出的角度:支持多个输入参数,但只支持一个表达式
从函数功能的角度:结构简单,无须定义函数名。但所能实现的功能也极其受限。
从访问变量的角度:只支持访问lambda本身定义的变量。不支持外部变量访问
从运行效率的角度:lambda实际上仍开辟了一个内存单元,并无提高运行效率
'''

lambda函数复制给变量:减小函数定义的麻烦,同时支持代码复用内存

add=lambda x,y:x+y
print(add(1,2))

将lambda函数做为参数传递给其余函数字符串

max

dict1 = {
    'tank': 1000,
    'egon': 500,
    'sean': 200,
    'jason': 500
}

# 获取dict1中薪资最大的人的名字
# 字符串的比较: ASCII
print(max(dict1, key=lambda x: dict1[x]))

min

# dict1 = {
#     'tank': 100,
#     'egon': 500,
#     'sean': 200,
#     'jason': 50
# }
# # new_list = ['egon', 'sean', 'tank', 'jason']
# new_list = sorted(dict1, key=lambda x: dict1[x], reverse=True)
# print(new_list)

内置函数

map()映射、list显示

python中的map()函数是一个内置的函数,通常用法是map(function, iterable)。it

须要传入一个函数,这个函数能够是内置的,也能够是本身定义,也能够是匿名函数。第二个参数是一个可迭代对象,如列表,字符串等等。返回的是一个map对象,注意不是列表不能直接输出,能够经过for循环或者list()来显示io

map() 会根据提供的函数对指定序列作映射。用前面的函数,依次映射执行后面的可迭代对象for循环

l = ['qwe','eqwed','eqweddf','ewq']

res = map(lambda x : '666' + x,l)
for i in res:
    print(i)

res = map(lambda a : a + '.jpg' if a[-1] != 'd' else a,l)
for i in res:
    print(i)

reduce()合并

reduce()函数在库functools里,若是要使用它,要从这个库里导入

from functools import reduce

reduce函数与map函数有不同地方,map操做是并行操做,reduce函数是把多个参数合并的操做,也就是从多个条件简化的结果,在计算机的算法里,大多数状况下,就是为了简单化

from functools import reduce
a = reduce(lambda x,y: x+y,[1,2,3,4])
print(a)
#10

filter过滤

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由filtre对象。

该接收两个参数,第一个为函数,第二个为序列,序列的每一个元素做为参数传递给函数进行判,而后返回 True 或 False,最后将返回 True 的元素放到新列表中。

filter(function, iterable)
l = [1,2,3,4,5,6,7,8,8]

nl = filter(lambda x:x % 2 == 0,l)
for i in nl:
    print(i)
相关文章
相关标签/搜索