在乙個函式內呼叫本身
def
new(num)
:if num==
1or num==2:
return
1else
:return new(num-1)
+new(num-2)
print
(new(10)
)
格式
#lambda para1,para2,....,paran:expression using paras
f =lambda a,b,c:a+b+c
print
(f(1,2
,3))
把乙個函式名,以實參的形式,傳遞給這個函式的形參,這個函式就稱為高階函式。
def
add(a,b,c)
:return c(a)
+c(b)
a_va=add(-9
,1,abs
)print
(a_va)
舉例:
li1=
['zhjiang'
,'college'
,'university'
]def
start_s
(s,c)
:return s.startswith(c)
defend_s
(s,c)
:return s.endswith(c)
defone
(lis,st,a)
: li=
for i in lis:
ifnot a(i,st)
:return li
print
(one(li1,
'c',start_s)
)print
(one(li1,
'ty'
,end_s)
)
功能:
li1=
['zhjiang'
,'college'
,'university']f=
filter
(lambda sr:
not sr.endswith(
'ty'
),li1)
print
(list
(f))
功能:
格式:
li=[1
,2,3
,4,5
]res=
map(
lambda x:x+
1,li)
print
(list
(res)
)#[2, 3, 4, 5, 6]x=[
1,2,
3,4]
y=[5,
4,3,
2]deff
(x,y)
:return x+y
r=map
(f,x,y)
print
(list
(r))
#[6, 6, 6, 6]
格式
reduce
(function,iterable,
[inital]
) function必須要傳兩個引數
iterable---
>列表元組
from functools import
reduce
li=[1,
2,3,
4,5,
6]t=reduce
(lambda x,y:x+y,li)
print
(t)#1--->f(1,2)--->[3,3,4,5,6]
#2--->f(3,3)--->[6,4,5,6]
#3--->f(6,4)--->[10,5,6]
#....
#21li=[1
,2,3
,4,5
,6]t=
reduce
(lambda x,y:
10*x+y,li,
100)
print
(t)#100123456
功能
import numpy as np
import pandas as pd
a=np.random.randint(low=
0,high=
4,size=(2
,4))
print
(a)data=pd.dataframe(a)
print
(data)
tim=data.
(lambda x:x*10)
print
(tim)
'''[[3
311]
[111
0]]0
1230
3311
1111
0012
303030
1010110
1010
0
功能 注:
格式zip(iterable1,it2,it3…)
a=[1
,2,3
]b=[4
,5,6
,7]zipt=
zip(b,a)
print
(list
(zipt)
)#[(4, 1), (5, 2), (6, 3)]
start_zipt=
zip(
*zipt)
print
(list
(start_zipt)
)#[(4, 5, 6), (1, 2, 3)]
a=b=[4
,5,6
,7]c=
zip_1=
zip(a,b,c)
print
(list
(zip_1)
)#[('name', 4, 'id')]
Python練習 高階函式 day11
1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 1.1.作業1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 2,寫函式,傳入乙個引數n,返回n的階乘 例如 cal ...
python 函式高階 python 函式高階
形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...
Python高階 函式高階
閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...