匿名函数
匿名函数的关键字为 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