援助、列表、詞典、字符串、生成器等整體的各個要素分離為個人的過程是打開包裝,反之是按包裝。
一.解包
1.簡單解包
#元組 a,b,c=("a","b","c") #列表 a,b,c=["a","b","c"] #字典 a,b,c={"a":1,"b":2,"c":3} #字符串 a,b,c="abc" #生成器 a,b,c = [x+1 for x in range(3)] #迭代器 a,b,c = enumerate(["a","b"."c"])可迭代對象都可以這么做,如果待賦值變量與可迭代對象數(shù)量不一致則會報錯,但可用*號表示多個元素
2.*號在解包中的使用
比如我們要計算平均分,去除最高分和最低分,除了用切,還可以用解包的方式獲得中間的數(shù)值
a,*b,c = [90,80,70,60,50] 輸出:a:90,b:[80,70,60],c:503.復雜點的解壓
mylist = [("apple","red",1),("banana","white",2),("orange","orange",3)] for fruit,*args in mylist: print(fruit,args) 輸出: apple ['red', 1] banana ['white', 2] orange ['orange', 3]二.壓包
壓包是解包的逆過程,用zip函數(shù)實現(xiàn),
zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的對象(python3)。
如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
a = [1,2,3] b = [4,5,6] for i in zip(a,b) print(i) 輸出: (1,4) (2,5) )三.解包和壓包結合
下面例子實現(xiàn):兩個列表對應數(shù)值相加
a = [1,2,3] b = [4,5,6] for i,j in zip(a,b) print(i+j) 輸出: 5 7 9細細拆解上面過程,可以看出步驟是這樣的
- 先是zip函數(shù)將a b壓包成為一個可迭代對象
- 對可迭代對象的每一個元素((1, 4))進行解包(i, j = (1, 4))
- 此時就可以分別調(diào)用i j變量進行計算
四._號在解壓包中的使用
當一些元素不用時,用_表示是更好的寫法,可以讓讀代碼的人知道這個元素是不要的
person = ("adou",23,80,("12","13","2018")) name,*_,(*_,year) = person print(name,year) 輸出: adou 20181.《解包器怎么用?我來告訴你答案python解包和壓包》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《解包器怎么用?我來告訴你答案python解包和壓包》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/3044192.html