知识点-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)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42357472/article/details/83660860