美文网首页
*和**在做参数中的作用

*和**在做参数中的作用

作者: 28fd90f2ac9b | 来源:发表于2019-09-30 01:24 被阅读0次

    我们知道*号可以借zip()函数,*zip(a,b),表示将a和b打包后的元组分解开来,注意,分解开后只能够重新打包起来,即zip(*zip(a,b)),而且分解不可逆,即令z=*zip(a,b),则z要重新打包才行。

    1.*号在函数参数中出现,表示将传入的参数打包成一个列表(list),如:

    def add(*data):
        sum = 0
        for i in data:
            sum = sum + i
        return sum
    
    add(1,2,3,4)
    

    结果输出为10

    2.*号在传入参数列表中出现,表示将一个列表分解为多个参数,如:

    y= lambda a,b,c,d:a+b+c+d
    y(*[1,2,3,4])
    

    最后输出结果也为10

    1. **号在函数参数中的作用和1类似,不过不是打包成一个列表,而是打包成一个字典(dictionary),例如:
    def add(**data):
        print data
    add(city='beijing',age=10)
    

    输出{'city': 'beijing', 'age': 10}

    1. **号传入参数列表中的作用和2类似,不过是将一个字典分解为多个参数,如:
    def x(age,sex):
        print("age is %d,sex is %s" % (age,sex))
    x(**{'age':10,'sex':'M'})
    

    输出age is 10,sex is M

    相关文章

      网友评论

          本文标题:*和**在做参数中的作用

          本文链接:https://www.haomeiwen.com/subject/kpxcpctx.html