一、lambda 表达式和匿名函数
lambda 表达式可以用来声明匿名函数。lambda 函数是一种简单的、在同一行中定义函数
的方法。lambda 函数实际生成了一个函数对象。
lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数
的返回值。
lambda表达式基本语法:
lambda arg1,arg2,arg3... : <表达式>
f =lambda a,b:a+b
print(f(1,2))
arg1/arg2/arg3 为函数的参数。<表达式>相当于函数体。运算结果是:表达式的运算结果。
二、eval()函数
功能:将字符串 str 当成有效的表达式来求值并返回计算结果。
语法: eval(source[, globals[, locals]]) -> value
参数:
source:一个 Python 表达式或函数 compile()返回的代码对象
globals:可选。必须是 dictionary
locals:可选。任意映射对象
a = 1
b = 2
c = eval( "a+b")
print(c)
三、enumerate()的使用
1、enumerate()是Python的内置函数
2、用法
既然是列举, 该方法一般常用于 数组, 配合for循环来使用
3、语法:enumerate(iterable: Iterable[str], start: int = ...)
a = ['aa','bb','cc']
for index,t in enumerate(a):
print(index,t)
四、map函数
map(func名,序列)
函数接收两种参数,一是函数,一种是序列(可以传入多个序列),map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回
def f(x):
return x * x
L=map(f,[1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(L))
# 能和lambda连用
L=map(lambda n:n*n,[1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(L))
五、reduce()函数
reduce位于functools
模块
reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
from functools import reduce
def add(x, y):
return x + y
sum=reduce(add, [1, 3, 5, 7, 9])
print(sum)
六、filter()函数
内置函数filter()
用于过滤序列。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False, 决定保留还是丢弃该元素。
def is_odd(n):
return n % 2 == 1
L=filter(is_odd, [1, 2, 4, 5])
print(list(L))
L=filter(lambda n:n%2==1, [1, 2, 4, 5])
print(list(L))