知識點-map和lambda,*args 和**kwargs
阿新 • • 發佈:2018-12-19
1、lambda匿名函式,算是正常定義函式的簡寫形式,:分割,:後等價於f函式return後,最後結構都一樣,都是直接傳值1結果為2
def f(x):
return x+1
print(f(1))
a=lambda x:x+1
print(a(1))
map()函式,需要傳兩個值,一個是傳一個函式,另外一個是引數,算是高階函式;但裡面引數y需要提前先定義不能是整數,然後map返回是物件需要加list()轉化
y=[1]
b=map(lambda x:x+1,y)
print(b)
print(list(b))
2.args 和kwargs 表示不定長引數,*args傳非鍵值對 kwargs傳鍵值對的型別引數,另外同時使用args和kwargs時,*args必須寫在kwargs之前。
def f(*args,**kwargs):
print(args)
print(type(args))
print(kwargs)
print(type(kwargs))
f(1,2,3,4,a="ni",b="hao")
*args
def f(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", arg2) print("arg3:", arg3) args = ["two", 3] # list f(1, *args)
**kwargs
def f(arg1, arg2, arg3):
print("arg1:", arg1)
print("arg2:", arg2)
print("arg3:", arg3)
kwargs = {"arg2": 2, "arg3": "three"} # list
f(1, **kwargs)