1.lambda() 匿名函数
lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明一个函数
语法:函数名 = lambda 参数:返回值
注意:
(1)参数可以有多个,多个参数用逗号隔开
(2)匿名函数不管多复杂.只写一行.且逻辑结束后直接返回数据
(3)返回值和正常函数一样1,可以是任意数据类型
我们通过__name__()查看函数名字
例:
a = lambda x : x * xprint(a(5)) ==>25print(a.__name__) ==><lambda>
例:
a = lambda x,y : x * 2 + yprint(a(2,8)) ==>12
2.sorted 排序函数
语法:sorted(iterable,key=None,reverse=False) 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数.根据函数的运算结果进行排序 reverse是否倒序
例:
lst = ["sdef","efg","c","sfrgrg"]l = sorted(lst,key= lambda s : len(s))print(l) ==>[‘c‘, ‘efg‘, ‘sdef‘, ‘sfrgrg‘]
例:
lst = [{"name":"小花","age":6}, {"name":"jan","age":14}, {"name":"笨笨","age":4}, {"name":"曼曼","age":10}]ll = sorted(lst,key = lambda dic:dic["age"])print(ll)结果:[{‘name‘: ‘笨笨‘, ‘age‘: 4}, {‘name‘: ‘小花‘, ‘age‘: 6}, {‘name‘: ‘曼曼‘, ‘age‘: 10}, {‘name‘: ‘jan‘, ‘age‘: 14}]
3.filter筛选函数
语法:filter(function,iterable) function:用来筛选的函数,在filter中会自动把iterable中的元素传递给function,然后根据function返回的True或False来判断是否保留此项数据.iterable:可迭代对象
例:
def fn(i): return i % 2 ==1lst = [1,2,3,4,5,6,7,8,9]ll = filter(fn ,lst)print(list(ll)) ==>[1, 3, 5, 7, 9]
例:
lst = [1,2,3,4,5,6,7,8,9]ll = filter(lambda i : i % 2 == 1 , lst)print(list(ll)) ==>[1, 3, 5, 7, 9]
例:
lst = [{"id":1,"name":"alex","age":18}, {"id":2,"name":"taibai","age":58}, {"id":3,"name":"wusir","age":38}, {"id":4,"name":"ritian","age":48}, {"id":5,"name":"女神","age":18},]ll = filter(lambda dic:dic["age"]<40 ,lst)print(list(ll))结果:[{‘id‘: 1, ‘name‘: ‘alex‘, ‘age‘: 18}, {‘id‘: 3, ‘name‘: ‘wusir‘, ‘age‘: 38}, {‘id‘: 5, ‘name‘: ‘女神‘, ‘age‘: 18}]
4.map映射函数
语法:map(function,iteration) 可以对可迭代对象中的每一个元素进行映射.分别执行function
例:
lst = [1,2,3,4,5]it = map(lambda i:i*i,lst)print(list(it)) ==>[1, 4, 9, 16, 25]
例:
lst1 = [1,2,3,4,5]lst2 = [6,7,8,9,10]print(list(map(lambda x,y:x+y,lst1, lst2))) ==>[7, 9, 11, 13, 15]
5.递归
在函数中调用函数本身.就是递归
例:
def fn(): print("我是谁?") fn()fn()
在python中递归的深度最大到998
递归应用:遍历树形结构,例如系统中的文件夹系统
例:
import osfilePath = "F:\python作业" #获取当前文件夹位置def fn(filePath,n): it = os.listdir(filePath) #打开文件夹 for el in it: #遍历文件夹中的文件夹 fg = os.path.join(filePath,el) #加入文件夹 获取到绝对路径 if os.path.isdir(fg): #判断该路径下文件是文件夹 print("\t"*n,el) fn(fg,n+1) #继续进行相同操作 递归入口 else: print("\t"*n,el) #递归出口fn(filePath,0)结果: .idea inspectionProfiles misc.xml modules.xml python作业.iml workspace.xml 18.07.02 day1.py day1作业及默写.pdf 18.07.03 day2.py day2作业.pdf 作业.py
原文地址:https://www.cnblogs.com/gxj742/p/9342913.html
时间: 2024-10-05 01:31:56