赞
踩
1.lambda应用排序
students = [ {"name": "孙涛", "age": 88}, {"name": "张恩", "age": 8}, {"name": "饶鹏鹏", "age": 5} ] # def func1(x): # return x["age"] # # # func2 = lambda x: x["age"] # students 会把数据传递给 func1 # 返回值 会按照顺序进行排序 students.sort(key=lambda x: x["age"], reverse=False) print(students) # 酱香进行排序 students.sort(key=lambda x: x["age"], reverse=True) print(students)
2.将函数进行转换
a = -9 # abs 是绝对值函数 b = abs(a) print(b) def func1(a, b, f): # f = abs # print(a, b, f) return abs(a) + abs(b) # abs这个函数传递给f 将函数作为参数进行传递 result = func1(-6, 7, abs) print(result)
3.map内置函数
lst = [1, 2, 3, 4, 5] # 计算x的平方 def func1(x): return x ** 2 # # 普通方法 # lst1 = [] # for i in lst: # print(func1(i), end=' ') # lst1.append(func1(i)) # print(lst1) # 返回的是一个map对象 本身是一个迭代器 实际也是一个数据类型 # python2 result是列表 # python3 result是迭代器 result = map(func1, lst) print(result) # 迭代器循环获取 for i in result: print(i) # 迭代器转换为列表 result2 = list(result) print(result2, type(result2)) ''' 迭代器和列表的区别 迭代器和列表都是容器 迭代器循环获取之后 里面的内容就被拿走了 计算空的容器 列表循环获取之后 里面的内容还在 列表持久化 迭代器,CPU取迭代器中选择工作 工作完成之后不会重复同一个工作 【工作1,工作2,工作3】 '''
4.reduce内置函数
import functools lst = [1, 2, 3, 4, 5] def func1(a, b): return a + b # lst中的值 依次传递给func1 # reduc后将lst中的前两个数 相加 然后在和第三个数 一起传递给func1然后结构在和第四个数 result = functools.reduce(func1, lst) print(result)
5.filter内置函数
# lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # # # def func(x): # return x % 2 == 0 # # # # 过滤函数 返回一个filter对象 # result = filter(func, lst) # print(result, type(result)) # # print(list(result)) ''' 练习: 1.首先有一个0-100的列表 选出斐波那契数列形成一个列表【 1 1 2 3 5 8 13 21 34 55 89】 选出3的倍数【3 21】 相加 ''' def lis_func(x): list1 = [] for i in range(x): list1.append(i + 1) print(list1) def fib_func(n): # 初始值设置 如果n是0或者是1 直接返回本身 if n in (0, 1): # 只要执行return 本次函数调用就会终止 return n return fib_func(n - 2) + fib_func(n - 1) # 传递一个数 然后就是打印前几位 for i in range(12): print(fib_func(i), end=" ") print(sum) lis_func(100)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。