python
pycharm
from functools import reducestart = [2, 5, -3, 4, 9, -7]def get_double(L): tmp = [] for i in L: tmp.append(i*2) return tmpa = get_double(start)print(a)
start = [2, 5, -3, 4, 9, -7]def get_square(L): return [i*i for i in L] # 列表生成式a = get_square(start)print(a)
start = [2, 5, -3, 4, 9, -7]print('*********将规则函数作为参数*********')def great_fn(fn, L): # tmp = [] # for i in L: # tmp.append(fn(i)) # return tmp return [fn(i) for i in L]def to_square(i): return i * i
x = to_square(-5)print(x)a = great_fn(to_square, start)print(a)x = abs(-5)print(x)a = great_fn(abs, start)print(a)
print('************map************')# map的功能和我们上面写的great_fn类似# 返回的是一个map对象(可以转成列表)# 参数是一个函数和一个列表,生成的新列表里的元素就是作为参数的老列表中所有元素依次调用函数的结果a = map(abs, start)print(a, list(a))a = list(map(str, start))print(a)
print('************匿名函数*************')def good(i, j): return i*jprint(good(3, 6))# 匿名函数只支持内部仅有一个return语句的函数,不能实现太复杂的功能name = lambda i, j: i*jprint(name(2, 7))print(start)a = list(map(lambda i: i*10, start))print(a)def ten_fn(i): return i*10
print('***************reduce****************')start = [3, 5, 6, 7, 8]# reduce: 将列表中前2个元素做运算,然后运算结果和下一个元素再做运算。# 再将结果和下一个元素做运算,以此类推,直到列表最后一个元素a = reduce(lambda a, b:a+b, start)print(a, type(a))a = reduce(lambda a, b: a*10+b, start)print(a, type(a))
匿名函数一般是在列表生成式里使用。