map 函数:
map(func, *iterable)用函数对可迭代对象中的每一个元素作为参数计算出新的迭代器对象,当最短的一个迭代器完成迭代后结束。
例:
# 生成一个迭代器,此迭代器可以生成整数的平方
def pow2(x):
return x ** 2
iter = map(pow2, range(1,10))
# 计算1 + 4 + 9 + 16 + .....+ 10000 和是多少呢?
print(sum(map(pow2, range(1, 101))))
# 生成一个迭代器,此迭代器可以生成1**4, 2**3, 3**2, 4**1
iter = map(pow, range(1, 5), range(4, 0, -1))
>>> [x for x in iter]
[1, 8, 9, 4]
filter 函数 过滤/筛选:
filter(函数或None,iterable)
作用:
筛选可迭代对象iterable中的数据,返回一个可迭代对象,此可迭代对象将对iterable中数据进行筛选。
函数 function将对iterable中的每个元素进行求值,返回False则丢弃数据,反之,保留数据
例:
# 奇数规则
def is_odd(x):
return x % 2 == 1
fit = filter(is_odd, range(1,10))
>>> [x for x in fit]
[1, 3, 5, 7, 9]
sorted 函数:
格式:
sorted(iterable, key=None, reverse=False)
作用:
排序
说明:
key是用来提供一个值,这个值将作为排序的依据
例:
>>> l = [5, -2, -4, 0, 3, 1]
>>> sorted(l)
[-4, -2, 0, 1, 3, 5]
>>> sorted(l, reverse=True)
[5, 3, 1, 0, -2, -4]
>>> sorted(l, key=abs) # abs绝对值
[0, 1, -2, 3, -4, 5]
>>> names = ["LSK", "XH", "LM", "WYAGD"]
>>> sorted(names, key=len)
['XH', 'LM', 'LSK', 'WYAGD']
lambda 匿名函数:
作用:
创建一个匿名函数对象
同def类似,但不提供函数名
语法:
lambda[参数1,参数2,...] : 表达式
例:
myadd = lambda x, y: x + y
myadd(1,2)
eval() 函数:
作用:
把一个字符串当成一个表达式执行,返回表达式执行后的结果
格式:
eval(source, globals=None,locals=None)
例:
>>> x = 100
>>> y = 100
>>> a = eval("x+y")
>>> a
200
ls = {"x": 1, "y":2}
a = eval("x+y", None, ls)
>>> a
3
>>> gs = {"x": 10, "y":20}
>>> a = eval("x+y", gs)
>>> a
30
exec 函数:
作用:
把一个字符串当做程序执行
格式:
exec(source, globals=None,locals=None)
例:
>>> x = 100
>>> y = 200
>>> s = 'print("x + y = ", x+y)'
>>> exec(s)
x + y = 300
exec的globals,locals参数的用法与eval一致。