溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用python怎么進(jìn)行解包

發(fā)布時(shí)間:2021-02-18 11:51:35 來(lái)源:億速云 閱讀:180 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

使用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ù)定義中使用。

2、*方法

字典解包后,只會(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

3、**方法函數(shù)解包

函數(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í)。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI