此篇隨筆只是做爲本身偶然想起的遇到過的代碼片斷。。記錄下!app
一、巧用lambda,reduce實現多層嵌套的裝飾器:函數
示例以下:spa
1 #示例 函數chain([a,b,c,d) (input), 最終實現d(c(b(a)))(input),其中chain的參數是一個函數列表,且列表長度不肯定【典型的裝飾器多層嵌套應用】,一下示例中的f1,f2,f3只是簡單示例 2 3 def f1(x): 4 return x+2 5 6 def f2(x): 7 return x*2 8 9 def f3(x): 10 return x**2 11 12 def chain(functions): 13 return lambda x: reduce(lambda v,f:f(v), functions, x)
如 chain([f1,f2,f3])(1),最終結果爲36.code
二、根據須要提取元素爲字典的list中指定元素。blog
1 #示例l =[{'a':'app1','b':3},{'a':'app1','b':'1'},{'a':'app2','b':1}],可能某些特定業務須要提取出{'a':'app1','b':'1'},使用場景可擴展 2 tmp = [x for x in l if x['a']=='app1'] 3 r = sorted(tmp, key=lambda x:x['app1'])[0]
Stay hungry,Stay foolish!!!input