在呼叫函式傳遞引數時,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會自動將多個值封裝成元組。這種功能被稱為序列封包。程式允許將序列直接賦值給多個變數,此時序列的個元素會被依次賦值給每個變數 要求序列的元素個數和變數個數相等 這種功能被稱為序列解包。如下 所示 如果賦值過程...