Python基础——解包与封包

1.python封包

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

a = 1,2,3
print(a,type(a))

返回

(1, 2, 3) <class 'tuple'>

当函数返回多个值时,利用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值存在,故需要{}封装

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容