1. 程式人生 > >知識點-map和lambda,*args 和**kwargs

知識點-map和lambda,*args 和**kwargs

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)

在這裡插入圖片描述