python序列解包

2021-08-20 18:00:05 字數 896 閱讀 4582

在呼叫函式傳遞引數時,

1. 可以在實參序列前加乙個星號*進行序列解》包,這裡的序列可以是元祖、列表、集合、字典的鍵(預設)、字典的值、range物件、map物件、zip、生成器物件 ,貌似所有可迭代物件都行。

2. 或在實參字典前加兩個星號**進行解包,比如dic1=

那麼add(dic1)實際上等價於add(a=1,b=2,c=3)

沒有什麼比舉個例子更實在的了!

需要注意的是這裡都是對實參進行解包

in [15]: def add(a,b,c):

...: return a+b+c

...:

...:

in [16]: add(1,2,3)

out[16]: 6

in [17]: add(*[1,2,3])

out[17]: 6

in [18]: add(*(1,2,3))

out[18]: 6

in [19]: x=(1,2,3)

in [20]: add(*x)

out[20]: 6

in [22]: dic=

in [23]: add(*dic)

out[23]: 6

in [24]: add(*dic.values())

out[24]: 'abc'

in [37]: add(*set1)

out[37]: 6

in [43]: dic1=

in [44]: add(**dic1)

out[44]: 6

in [45]: dic1=

in [46]: add(**dic1)

out[46]: 6

python 序列解包

當函式或方法返回元組時,將元組中值賦給變數序列中的變數,這個過程就叫做序列解包。1 序列1,2,3被打包到元組values中 values 1,2,3 type values values 1,2,3 2 序列解包,元組values中的值分別被賦給變數序列中的x,y,z x,y,z values p...

python 序列解包

同時 並行 給多個變數賦值 x,y,z 1,2,3 print x,y,z 12 3交換多個變數的值 x,y y,x print x,y,z 21 3序列解包 可迭代物件解包 values 1,2,3 values 1,2,3 x,y,z values x 1元組 scoundrel key,val...

Python 序列封包和序列解包

序列封包和序列解包 python支援以下兩種賦值方式 程式把多個值賦給乙個變數時,python會自動將多個值封裝成元組。這種功能被稱為序列封包。程式允許將序列直接賦值給多個變數,此時序列的個元素會被依次賦值給每個變數 要求序列的元素個數和變數個數相等 這種功能被稱為序列解包。如下 所示 如果賦值過程...