python学习笔记-----匿名函数

匿名函数

匿名函数的关键字为 lambda,冒号前面是形式参数,冒号后面是返回值。
匿名函数的形式参数可以是:必选,默认,可变,关键字参数。

# 1). 无参数
f = lambda : "hello"
print(f())


f1 = lambda x, y=2: x**y
print(f1(2))
print(f1(2,3))


f2 = lambda  *args: sum(args)
print(f2(1,2,3,4,5))


f3 = lambda  **kwargs: kwargs
print(f3(a=1, b=2))


f4 = lambda x,y=2,*args,**kwargs: (x,y,args,kwargs)
print(f4(2,3,4,5,a=1,b=2))


from functools import reduce
def add(x, y):
    return x + y


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

print(reduce(lambda x, y: x + y, range(5)))


def mypow(x):
    return x ** 2

print(list(map(lambda x: x ** 2, range(5))))


def is_odd(num):
    return num % 2 == 0

print(list(filter(lambda x: x % 2 == 0, range(10))))

info = [
    ['001', 'apple', 1000, 2],
    ['002', 'xiaomi', 10, 2000],
    ['003', 'Oppo', 200, 1900],
    ['004', 'computer', 900, 5000]
]


def sorted_by_count(item):
    return item[2]


print(sorted(info, key=lambda x: x[2]))

hello
4
8
15
{'a': 1, 'b': 2}
(2, 3, (4, 5), {'a': 1, 'b': 2})
3
10
[0, 1, 4, 9, 16]
[0, 2, 4, 6, 8]
[['002', 'xiaomi', 10, 2000], ['003', 'Oppo', 200, 1900], ['004', 'computer', 900, 5000], ['001', 'apple', 1000, 2]]

高阶函数—–返回值是函数

def compare(base, y):
    return base > y
print(compare(5,3))
print(compare(5,20))



# 闭包: 函数里面嵌套函数;
def compare1(base):
    def compare2(y):
        return base > y
    return compare2
compare_base_10 = compare1(10)
print(compare_base_10(3))
print(compare_base_10(20))
True
False
True
False

猜你喜欢

转载自blog.csdn.net/qq_41891803/article/details/82179232