python元祖封包_Python基础——解包与封包

本文详细介绍了Python中的解包与封包概念。封包是指将多个值封装成元组,如通过变量一次性接收函数的多个返回值。解包则是将元组或列表的元素分配给多个变量,例如在接收函数返回值、遍历字典、传递参数等场景中。文中还展示了如何使用*和**操作符进行解包,并提供了实际应用示例,如将字典解包为关键字参数来调用函数。
摘要由CSDN通过智能技术生成

1.python封包

将多个值赋值给一个变量时,Python会自动将这些值封装成元组,这个特性称之为封包

a = 1,2,3

print(a,type(a))

返回

(1, 2, 3)

当函数返回多个值时,利用1个变量接收,也会形成同样封包

def test():

return 1,2,3

a = test()

print(a,type(a))

2.python解包

与封包相反,经常使用,返回值为多个时,需要多个变量对应接收返回值,这一过程叫做封包。

2.1 接收函数返回值

def test():

return 1,2,3

a,b,c = test()

print(a,b,c)

1 2 3

那如果用2个变量接收3个返回值是否可以呢?

def test():

return 1,2,3

a, b = test()

print(a, b)

很显然,需要一点小技巧

def test():

return 1,2,3

a, *b = test()

print(a, b)

1 [2, 3]

b变量前面的星号,使它不限制接收返回值

道理与传递参数的*args,不限定传递的参数个数一样,后文会讲。

2.2 遍历字典

my_dic = {

'一': 1,

'二': 2,

'三': 3

}

for item in my_dic.items():

print(item)

# 解包

for key, value in my_dic.items():

print(key, value)

('一', 1)

('二', 2)

('三', 3)

一 1

二 2

三 3

2.3 传递参数

def func(*args):

print(sum(args))

a = (2, 4, 6)

func(*a) # 将元组解包成可变参数

def func_2(**kwargs):

for key, value in kwargs.items():

print(key, value)

b = {'一': 1, '二': 2}

func_2(**b) # 将字典解包成关键字参数

一个* 代表传递可变参数,两个** 代表传递关键字参数,且可将字典解包成关键字参数

将字典解包成关键字参数,应用场景非常多,如下:

import pandas as pd

file = {"io": r"C:\Users\Administrator\Desktop\111.xlsx","dtype":"str"}

df = pd.read_excel(**file)

df.head()

好处是,一次性可以传入多个参数,只要参数名对应正确即可

2.4 合并两个字典

dic_1 = {'一': 1}

dic_2 = {'二': 2}

print(*dic_1)

print({**dic_1})

dic_3 = {**dic_1, **dic_2}

print(dic_3) # {'一': 1, '二': 2}

{'一': 1}

{'一': 1, '二': 2}

很显然,一个 * 获取key值,两个 * 获取key和value值,但是value值必须依托key值存在,故需要{}封装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值