PY3 內建資料結構 8 解構與封裝

2022-07-03 20:33:08 字數 1892 閱讀 4743

### 解構的理解與用法 ###

解構是python很有特色的乙個功能,被很多語言借鑑(例如es6)

#

元素按照順序賦值給變數in [31]: lst=list(range(5))

in [32]: head,*mid,tail=lst

in [33]: print

(head,tail)

0 4in [34]: print

(mid)

[1, 2, 3]

#

變數和元素個數必須匹配in [36]: v1,v2,v3,v4,v5,v6=lst

valueerror:

not enough values to unpack (expected 6, got 5)

#

*表示可以接受任意個數的元素#

但*變數不能單獨出現

in [35]: *v=lst

syntaxerror: starred assignment target must be

in a list or

tuple

#也不能重複出現

in [40]: head,*m1,*m2,tail=list(range(5)) ^syntaxerror: two starred expressions

inassignment

#帶*的這個變數的輸出是乙個列表

in [37]: head,*mid,tail=1,2in [38]: print

(head,tail)

1 2in [39]: print

(mid)

#

解構是支援多層次的in [14]: lst=[1,(2,3),5]

in [15]: _,(_,val),*_=lst

in [16]: print(val)

3in [17]: _,[*_,val],*_=lst

in [18]: print(val)

3

### 乙個慣例,下劃線『_』 ###

#

python有乙個慣例,是使用單個下劃線「_」來表示丟棄該變數

in [42]: head,*_,tail=lst

in [7]: v1,_,v3,*_,vd,_=lst

### 解構的使用場景 ###

1. 解析配置檔案

in [20]: key,_,value='

env=path=/usr/bin:$path

'.partition('='

)in [21]: print(key);print

(value)

envpath=/usr/bin:$path

2. 非常複雜的資料結構,多層巢狀的線性結構的時候,可以用解構快速提取其中的值

3. 函式返回值

### 封裝 ###

封裝:相當於定義乙個元組時省略小括號

in [18]: t1=1,2;t2=(1,2)

in [20]: type(t1)

out[20]: tuple

in [21]: type(t2)

out[21]: tuple //t1和t2等效

#

可用於快速交換兩個變數的值

in [1]: x=1;y=2in [3]: x,y=y,x //左邊解構,右邊封裝

in [4]: print

(x,y)

2 1

PY3 內建資料結構 5 字串編碼

python2中只有 unicode型別 而python3中有 string bytes兩種型別 1.str是文字序列 bytes是位元組序列 文字 字元 2.位元組是沒有編碼的 文字是有編碼的 單位元組編碼 雙位元組編碼 utf 8 gbk,gb18030等 3.什麼是編碼?編碼可以說是一種 位元...

Python3內建資料結構

資料結構從廣義上理解,就是一組資料的儲存結構 python中的內建資料結構 列表list 元組tuple 字典dict 集合set 1.列表的每個元素可變,列表為可變型別 相對於元組和字串是不可變型別 2.列表是有序的,每乙個元素的位置都是確定的 3.列表中元素可以是python的任何物件 字串 數...

py資料結構化與儲存

1.將新聞的正文內容儲存到文字檔案。content info content soup.select content 0 text with open test.txt a encoding utf 8 as story story.write content info content 2.將新聞資...