python *和**的用法
1.使用场景
*和**用在函数参数列表中
2.*作函数参数
以列表的形式提供参数
def foo(*args):
for arg in args:
print(arg)
foo(1, 2, 3)
运行结果:
3.**作函数参数
以关键字参数的形式提供参数
def foo(**kwargs):
for arg in kwargs:
print(arg, kwargs[arg])
foo(num1=1, num2=2, num3=3)
运行结果:
4.json格式转关键字参数
def foo(**kwargs):
for arg in kwargs:
print(arg, kwargs[arg])
_t = {"name":"shijingjing", "age":20}
foo(name="shijingjing",age=20)
foo(**_t)
运行结果:
5.*和混用作函数参数
*和可同时使用,但是*必须在**的前面
def foo(*args, **kwargs):
for arg in args:
print(arg)
for arg in kwargs:
print(arg, kwargs[arg])
foo("a", "b", "c", num1=1, num2=2, num3=3)
运行结果:
6.*作数组
a, b, *list= [1, 2, 3]
print(type(a))
print(type(b))
print(type(list))
print(a)
print(b)
print(list)
运行结果: