1、map()函式
map函式時python內建的乙個高階函式,它接受乙個函式f和乙個list,並把list的元素以此傳遞給函式f,然後返回乙個函式f處理完所有list元素的列表。
#map()函式,第乙個引數為自定義函式,第二個引數為乙個可迭代物件
2、reduce()函式
reduce()函式也是python內建的乙個高階函式。reduce()函式接收的引數和 map()類似,乙個函式 f,乙個list,但行為和 map()不同,reduce()傳入的函式 f 必須接收兩個引數,第一次呼叫是把list的前兩個元素傳遞給f,第二次呼叫時,就是把前兩個list元素的計算結果當成第乙個引數,list的第三個元素當成第二個引數,傳入f進行操作,以後以以此類推,並返回最終結果值。
#reduece函式
#傳入函式必須接受兩個引數,
#把可迭代物件的前兩個引數作為函式的實參,傳入到f函式中
#把每次f運算的結果作為第乙個實參,可迭代物件的下乙個元素作為另乙個實參
#以此類推,最終得到結果
print('################reduce###############')
deff
(x, y):
return (x+y)
print(reduce(f, [1, 2, 3, 4, 5], 10))
運算過程:
1, 計算a = f(1,2)的值為3
2, 計算b = f(a, 3)的值為6
3, 計算c = f(b, 4)的值為10
4, 計算d = f(c, 5)的值為15
5, 計算f(d, 10)的值為25
其實就是相當於1+2+3+4+5+10,最有的10是乙個預設值,及最終在執行一次。
3、filter()函式
filter英文單詞就是過濾的意思,filter()函式是 python 內建的另乙個有用的高階函式,filter()函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。
#filter函式
#每次把可迭代物件的元素傳入進去,如果返回為『true』,則保留該元素,如果反悔了『flase』,則不保留該元素
print('################filter###############')
a = [1, 2, 3, 4, 5]
defis_odd
(x):
return(x%2 == 1)
print (is_odd(5))
print(filter(is_odd, a))
解釋:
1, list的元素以此傳入到函式is_odd,
2, is_odd判斷每個元素是否符合條件,把符合條件的留下,不符合條件的捨棄
3, 把最終所有符合條件的元素組成乙個新的列表
4、匿名函式
顧名思義就是沒有名字的函式,那為什麼要設立匿名函式,他有什麼作用呢?
lambda 函式是一種快速定義單行的最小函式,可以用在任何需要函式的地方
常規版本:
def fun(x,y)
returnx*y
lambda版本:
r = lambda x,y:x
*yprint(r(2,3))
print(type(r))
結果:
6
#匿名函式
defsum
(x,y):
return x+y
m = lambda x, y: x + y#後面是返回的結果
5、sorted函式
sorted(…)
sorted(iterable, cmp=none, key=none, reverse=false) –> new sorted list
對字典進行排序:
按照value進行排序
mm = dict(a=1,b=10,c=3,d=9)
print sorted(mm.iteritems(), key = lambda d:d[1], reverse = true)
作用:返回乙個經過排序的列表。
第乙個引數是乙個iterable,返回值是乙個對iterable中元素進行排序後的列表(list)。
可選的引數有三個,cmp、key和reverse。
1)cmp指定乙個定製的比較函式,這個函式接收兩個引數(iterable的元素),如果第乙個引數小於第二個引數,返回乙個負數;如果第乙個引數等於第二個引數,返回零;如果第乙個引數大於第二個引數,返回乙個正數。預設值為none。
2)key指定乙個接收乙個引數的函式,這個函式用於從每個元素中提取乙個用於比較的關鍵字。預設值為none。
3)reverse是乙個布林值。如果設定為true,列表元素將被倒序排列。
key引數的值應該是乙個函式,這個函式接收乙個引數並且返回乙個用於比較的關鍵字。對複雜物件的比較通常是使用物件的切片作為關鍵字。
#sorted()#高階函式
#字典進行排序
mm = dict(a=1, c=20, d=9, b=10)
for i in mm:
print i
print('$$$$$$$$$$$$$$$$')
for key, value in mm.iteritems():#這裡是基於values的排序所需
print(key, value)
# print(dir(mm))
print(mm)
help(sorted) #檢視幫助
test = sorted(mm)#這是基於key的排序
iOS 高階 第十三天 0414
畫線 圓和圓弧的第二種方法 5中方法畫矩形 第二種畫圖形的方法 之前做的方法都是先把要畫的元素快取到圖形上下文cgconteextref中去,現在第二種方法也快取到cgpath中去.其實圖形上下文本質也是在內部建立乙個cgpath,圖形上下文把所有的元素先快取到cgpath中去,然後cgpath再快...
第十三天 練兵
問 昨天您講的很驚心動魄。這樣快節奏的配合確實非常完美,很羨慕。但要形成這樣的結果必須我們之間配合需要非常流暢,我們有什麼方法可以促成這樣的氛圍?答 練兵。如果一開始就進入業務系統功能的設計開發,業務組長對業務還沒有很深的吃透,這樣倉促上陣功能不但連上一版不如,而且為了補課,軟體不斷修改,什麼都亂了...
2020 7 18第十三天
1.學習了static關鍵字 靜態變數,靜態方法以及靜態模組 1 public class vardemo 9 1 public class staticblockdemo 5public staticblockdemo 8public static void main string args 12...