今天主要學習了python中sorted,filter, map 三個高階函式,還了解了一下函式的柯里化;
1.什麼是高階函式
def way1(x):
return x + 3
def way2(x):
return x * x
result = way2(way1(7))
print(result) # 100
2.標準庫中的高階函式
sorted函式:
# 反向排序
str = sorted('abcdefg', reverse=true)
print(str) # ['g', 'f', 'e', 'd', 'c', 'b', 'a']
# 按指定元素進行排序
obj = [[1,2], [5,6], [2,8], [8,3], [3,10]]
func = lambda x: x[1]
new_list = sorted(obj, key=func, reverse=false)
print(new_list) # [[1, 2], [8, 3], [5, 6], [2, 8], [3, 10]]
filter函式:
# 過濾
obj = filter(lambda x: x > 0, [-20, -10, -1, 0, 1, 10, 20])
print(obj) # for i in obj:
print(i) # 1 10 20
map函式:
# 函式對映
obj = map(lambda x: x+1, [0,6,10])
print(obj) # for i in obj:
print(i) # 1 7 11
#封包傳遞
obj2 = map(lambda x, y: x+y, *([0, 5, 8], [2, 2, 2]))
print(obj2) # for i in obj2:
print(i) # 2 7 10
3.自實現高階函式# sorted高階函式自實現
def my_sorted(iterable, key=lambda a,b: a4.函式的柯里化將f(x, y) 轉換為 f(x)(y)
f(x, y) = f(x)(y)
# 普通函式
def add(x, y):
return x + y
print(add(3,7)) # 10
# 柯里化
def new_add(x):
def _add(y):
return x + y
return _add
print(new_add(3)(7)) # 10
參考:俠課島(9xkd.com)python同學計畫 day20 函式遞迴
函式不僅可以巢狀定義,還可以巢狀呼叫,即在呼叫乙個函式的過程中,函式內部又呼叫另乙個函式,而函式的遞迴呼叫指的是在呼叫乙個函式的過程中又直接或間接地呼叫該函式本身 例如在呼叫f1的過程中,又呼叫f1,這就是直接呼叫函式f1本身 在呼叫f1的過程中,又呼叫f2,而在呼叫f2的過程中又呼叫f1,這就是間...
暑期訓練 day20
暑期訓練 day20 趙景樂今天看完了第二章的內容,有點多,現在想想記得的沒多少,還需要鞏固鞏固,找個時間再把相應的 打一打。今天訓練賽的a題錯了兩次,沒想到暴力能過,還是一開始打的麻煩了,c題是數學題,因為一開始沒優化到底,結果超時了,剪枝 改良公式也算剪枝吧,畢竟少了一重迴圈 後就過了,b題一開...
每日演算法 day 20
那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.3.3 卡特蘭數 include include include include ...