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)

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