python拆包

什么情况下需要用到拆包?

当我们的函数需要传入不定长参数或者多个参数时,为了方便我们可以将参数放在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拆包传给函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容