您好,登錄后才能下訂單哦!
使用python怎么進(jìn)行解包?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
1、使用說(shuō)明
(1)解包的意義就是將傳遞給函數(shù)的一個(gè)列表,元組,字典,拆分成獨(dú)立的多個(gè)元素然后賦值給函數(shù)中的形參變量。
(2)解包字典有兩種解法,一種用*解的只有key,一種用**解的有key、value。但是這個(gè)方法**只能在函數(shù)定義中使用。
字典解包后,只會(huì)把字典的key取出來(lái),value 則丟掉了。
(1)列表解包
a, b, c = [1, 2, 3] print(a, b, c) # 1 2 3
(2)元祖解包
a, b, c = (1, 2, 3) print(a, b, c) # 1 2 3
(3)字符串解包
a, b, c = "abc" print(a, b, c) # a b c
(4)字典解包
a, b, c = {"a": 1, "b": 2, "c": 3} print(a, b, c) # a b c
接收函數(shù)返回值
def test(): return 1, 2, 3 a, b, c = test() print(a, b, c) # 1 2 3
函數(shù)的返回值是一個(gè)元組,左側(cè)是三個(gè)變量,這樣就會(huì)發(fā)生解包,a, b, c依次等于元組里的元素,函數(shù)的返回值有3個(gè),被封包成了元組, 賦值語(yǔ)句的左側(cè)不一定非得是3個(gè)變量。
def test(): return 1, 2, 3 a, *b = test() print(a, b) # 1 [2, 3]
變量a賦值為1,變量b前面有一個(gè)星號(hào),剩余的2,3 將被解包為列表。
知識(shí)點(diǎn)擴(kuò)展:
了解解包,首先要了解什么是參數(shù)。比如我們要運(yùn)行ex1.py這個(gè)文件,我們可以在命令行(徽標(biāo)鍵+r)中輸入命令“pyhton ex1.py”即可運(yùn)行,但注意要先進(jìn)入到py文件所在路徑。其中,ex1.py便是參數(shù)。下面以一個(gè)可以接受參數(shù)的腳本為例來(lái)闡述相關(guān)知識(shí)。
from sys import argv #import語(yǔ)句目的是將python功能引入腳本當(dāng)中,一看“import”,就知道程序使用了哪些功能 #argv是“參數(shù)變量”的意思,這是一個(gè)非常標(biāo)準(zhǔn)的編程術(shù)語(yǔ)。這個(gè)變量包含了用戶傳遞給python的參數(shù) #用“import”導(dǎo)入進(jìn)來(lái)的功能稱為“模組(modules)”(也有人叫作“庫(kù)”)。 script,first,second,third = argv #上面一行作用是給argv“解包(unpack)”,即一次性將所有參數(shù)賦予變量名 #可理解為將argv中的東西解包,即將所有的參數(shù)依次賦予左邊的變量名 print("the script is called:", script) print("your first variable is:",first) print("your second variable is:",second) print("your third variable is:",third)
關(guān)于使用python怎么進(jìn)行解包問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。