def f(x):
return x * x
def function_operation():
# map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
l1 = list(r) # 由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。
print(l1)
# 关键字lambda表示匿名函数,冒号前面的x表示函数参数
l2 = list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
# sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序
l2 = sorted([36, 5, -12, 9, -21], key=abs)
print(l2)
l3 = sorted([36, 5, -12, 9, -21], reverse=True)
print(l3)
# Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样
a = int('12345')
b = int('12345', base=8)
int2 = functools.partial(int, base=2)
c = int2('1000000')
print(c)
# 所以,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数
运行结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[5, 9, -12, -21, 36]
[36, 9, 5, -12, -21]
64