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)
python(day11)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.