python拆包

2021-02-22  本文已影响0人  lily_5945
什么情况下需要用到拆包?

当我们的函数需要传入不定长参数或者多个参数时,为了方便我们可以将参数放在list/tuple/dict里面,然后一次性传给函数。比如下面这个求和函数

def nums_sum(*agrs):
    sum = 0
    for i in agrs:
        sum += i
    return sum
list拆包

现在将需要传入的参数放在一个list里面,想要将这个list传给函数,那么就需要将这个list拆成一个一个的传给函数了,我们可以这样做

list1 = [1,2,3]
nums_sum(*list1)
# 结果和直接传参是一样的
nums_sum(1,2,3)
tuple拆包

上面拆了list,下面拆tuple也是一样的处理

tuple1 = (1,2,3,4,5)
nums_sum(*tuple1)
# 结果和直接传参是一样的
nums_sum(1,2,3,4,5)
字典拆包 - 给函数传参。 key=value
def newdict(**kwargs):
    print(kwargs)
 # 第一种传参,直接传 key=value
newdict(name="xj", age=10) 

# 第二种传参,将mydict拆包传给函数, ** 表示拆字典
mydict = {"name":"xj", "age":10} 
newdict(**mydict)  
# 返回结果是一样,如下
{'name': 'xj', 'age': 10}
下面是一个输入参数然后拆包的实例
def nums_sum(*agrs):
    sum = 0
    for i in agrs:
        sum += i
    return sum


nums = input('请输入需要求和的数字,用逗号隔开:') # 结果为 2,3,4,5 这种
newlist = []
for i in nums.split(','):
    newlist.append(float(i)) # 将输入的字符串类型的数字转换为float类型,添加到list中
print(nums_sum(*newlist))   # 将list拆包传给函数
上一篇下一篇

猜你喜欢

热点阅读