任意長度可迭代物件的元素解包
例如:[ 'laowang', '18', 'boy', '18800000000', '17700000000', '16600000000']
如果我們只關注姓名和**號碼,我們可以這樣使用
msg_ls =
['laowang'
,'18'
,'boy'
,'18800000000'
,'17700000000'
,'16600000000'
]# 使用*解包
name, _, _,
*phone_nums = msg_ls
>>
> name
'laowang'
>>
> phone_nums
['18800000000'
,'17700000000'
,'16600000000'
]
*在迭代元素為可變長度的元組時也是很有用的。
msg_ls =[(
'country'
,'china'
,'beijing'),
('job'
,'coder'),
('time'
,2019,6
,30)]
defdo_country
(country, capital)
:print
('come from %s in %s'
%(capital, country)
)def
do_job
(job)
:print
('i am %s'
% job)
defdo_time
(year, month, day)
:print
('time is %s-%s-%s'
%(year, month, day)
)# 函式遍歷執行時
for key,
*values in msg_ls:
if key ==
'country'
: do_country(
*values)
elif key ==
'job'
: do_job(
*values)
elif key ==
'time'
: do_time(
*values)
Python中的解包
a,b,c 1 2 3 print a,b,c 1 2 3 a,b,c print a,b,c 1 2 3 2.python中交換變數值實際也是解包的過程。a,b 1,2 a,b b,a print a,b 2 1 a,b,c 1,2,3,4 print a,b,c 1 2 3,4 在函式呼叫時,你...
python中的解包操作
在看別人寫的python 的時候,有時候會看到在變數前面加上乙個 或者是 上網找了一下相關的資料發現這些星號原來是python中的解包操作,相當於將乙個容器中的元素取出來然後分配給不同的變數,下面是我看別人寫的部落格自己的一些理解 1 乙個星號解包 解包可以使用在多個變數賦值或者是函式呼叫中,並且任...
python 序列解包的多種形式和用法
序列解包 sequence unpacking 是python中非常重要和常用的乙個功能,可以使用非常簡潔的形式完成複雜的功能,大幅度提高了 的可讀性,減少了程式設計師的 輸入量。例如,可以使用序列解包功能對多個變數同時進行賦值。x,y,z 1,2,3 多個變數同時賦值 v tuple false,...