関数
ラムダ(無名関数)
1.定义了一个匿名函数
2.只是一个表达式,不是一个语句(注意和def的区别)。
3.方便代码简洁,符号python精神
4.会创建一个函数对象,但不会把这个函数对象赋给一个标识符
5.允许你快速定义单行的最小函数,
具体的可以看下面的例子:
def add(x):
x = x ** 2
return x
print(add(4))
g = lambda x:x ** 2
print(g(4))
def add(x,y):
z = x + y
return z
print(add(3,4))
s = lambda x,y:x + y
print(s(3,4))
地図
map(function, sequence)
对sequence中的item依次执行function(item),这句话的具体意思是:接收一个函数和一个可迭代对象(如列表)作为参数,用函数处理每个元素,然后返回新的列表。注意返回的是对象,要得到结果,还要使用list之类
lst = [1,2,3,4,5]
print(list(map(float,lst)))
也可以和lambda一起使用
a = [1,2,3,4,5,6]
result = list(map(lambda x:x ** 2,a))
print(result)
lst1 = [1,2,3,4,5,6]
lst2 = [6,5,4,3,2,1]
print(list(map(lambda x,y:x + y,lst1,lst2)))
減らす
reduce(func, seq [, init])
1.在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引入。
2.reduce是横着加的,map是互相加
3.可以和lambda一起使用
from functools import reduce
print(reduce(lambda x,y:x + y,[1,2,3,4,5]))
フィルタ
filter(func, seq)
1.func可调用对象必须返回一个具有“bool属性”的值。即True或者False。
2.可以对序列做过滤处理
numbers = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
print(list(filter(lambda x: x > 0,numbers)))