python元祖封包 python的封包與解包

2021-10-11 20:30:23 字數 1431 閱讀 3136

python的封包與解包

1. python 封包

將多個值賦值給乙個變數時,python會自動將這些值封裝成元組,這個特性稱之為封包

a = 1, 2, 3

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

當函式返回多個數值時,也會進行封包

def test():

return 1, 2, 3

a = test()

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

實踐中,很少主動使用封包操作

2. python解包

python解包是使用頻率非常高的技術,下面列列舉幾種使用python解包的場景

2.1 接收函式返回值

def test():

return 1, 2, 3

a, b, c = test()

print(a, b, c) # 1 2 3

函式的返回值是乙個元組,左側是三個變數,這樣就會發生解包,a, b, c依次等於元組裡的元素,函式的返回值有3個,被封包成了元組, 賦值語句的左側不一定非得是3個變數

def test():

return 1, 2, 3

a, *b = test()

print(a, b) # 1 [2, 3]

變數a賦值為1, 變數b前面有乙個星號,剩餘的2, 3 將被解包為列表

2.2 遍歷字典

my_dic =

func_2(**b) # 將字典解包成關鍵字引數

使用解包技術,可以將元組解包成可變引數,將字典解包成關鍵字引數,這種技術在實踐中大量應用,比如使用python操作redis時,如果你想一次性向集合中新增多個值,就必須使用解包結束傳入引數

import redis

from conf.redis_conf import redisconfig, queueconfig

r = redis.redis(host=redisconfig.host, port=redisconfig.port,

password=redisconfig.password, db=redisconfig.db)

r.sadd('my_set', *tup)

sadd的方法定義如下

def sadd(self, name, *values):

"add ``value(s)`` to set ``name``"

return self.execute_command('sadd', name, *values)

如果不使用解包技術,就只能在呼叫sadd方法時手動逐個寫入引數,耗時又費力

2.4 合併兩個字典

巧妙的利用解包技術,可以簡單方便的將兩個字典合併到乙個新字典中

dic_1 =

dic_2 =

dic_3 =

print(dic_3) #

python元祖格式 python中元祖

1.認識元祖 1.什麼是元祖 使用 將多個元素括起來,多個之間用逗號隔開。a.容器,可以同時儲存多個資料,不可變的,有序 不可變 不能增刪改 有序 可以通過下標獲取元素 b.元素 可以是任何資料 注意 如果元祖元素只有乙個時,必須在後面加逗號 image.png 多個資料用逗號隔開,表示乙個元祖 2...

python元祖用法 Python中元祖的用法

元祖tuple 元祖就是不可變的列表,元祖用 表示,元素與元素之間用逗號隔開,資料型別沒有限制。tu 科比 詹姆斯 喬丹 tu tuple 123 小括號中有乙個元素,有逗號就是元祖,沒有就是它本身。空的小括號就是元祖 索引和切片與列表和字串相同 不可變指的是,第一層元素不可變 元祖 唯讀列表,可迴...

Python 列表 元祖

知識點彙總 1 列表 list 特性 1 列表也是一種sequence 型別 2 下標 3 能切片 4 可以儲存任何型別的資料,每個元素是任意型別 5 內容可以改變 增刪改查 1 值 alist 0 9 1 列表的定義 1 英文的中括號 2 type 3 例子 alist 1,3.14,abc 10...