python(day11)

1、lambda 匿名函数,一行搞定一个函数,不适用于复杂的函数操作
	语法:变量 = lambda 参数 :函数体(直接return的内容)
	def func(n):
    return n*n
	print(func(3))
	print(func.__name__)  # 查看函数名
	
	fun = lambda x:x*x
	print(fun(3))
	
2、sorted() 函数
	语法:sorted(lterable,key=None,reverse=False)
	li = ['aa','dwd','aaaa','fsaaaa','zza','a']
	def fun(s):
	    return s.count('a') # 返回数字
	ll = sorted(li,key=fun)  # 把可迭代对象的每一个元素传递给fun
	print(ll)
	
	#或者
	li = sorted(li,key=lambda s:s.count('a'))
	print(li)
	
	# age排序
	lst = [
    {'id':1,'name':'alex','age':18},
    {'id':2,'name':'adx','age':16},
    {'id':3,'name':'jyx','age':23},
    {'id':4,'name':'sdx','age':31},
    {'id':5,'name':'aizl','age':32},
]
	def func(dic):
	    return dic['age']
	print(sorted(lst,key=lambda dic:dic['age']))

3、filter() 函数,返回一个迭代器,将第二个参数中的每一个元素传递给函数,返回True就留下该元素
	语法:filter(函数,lterable)
	
	lst = [1,2,3,4,5,6,7]
	li = filter(lambda i:i%2==1,lst)
	print(list(li))
	
4、map() 映射函数
	语法:map(函数,lterable)
	
	lst = [1,2,3,4,5,6,7]
	it = map(lambda i:i*i,lst) #可迭代对象每一个元素进行映射,分别执行函数
	print(list(it))
	
	l1 = [1,2,3,4,5,6]
	l2 = [2,4,6,8,10]
	print(list(map(lambda x,y:x+y,l1,l2)))#函数有多个参数需要一一对应
	
5、递归
	import os
	filePath = r"G:\python\untitled1"
	
	def read(filePath):
	    it = os.listdir(filePath) # 查看文件夹中的文件
	    for i in it:
	        if os.path.isdir(os.path.join(filePath,i)): # 判断文件是文件夹还是文件
	            read(os.path.join(filePath,i))
	        else:  #  普通文件,不是文件夹了
	            print(i)
	read(filePath)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章