python 序列解包和序列封包

2022-08-26 07:21:09 字數 2703 閱讀 7394

什麼叫做序列?序列可以理解為可以進行切片、相加相乘、索引、成員資格(用關鍵字in、not in關鍵字判斷某個元素在不在這個序列),例如:列表、元組、字串就是常見的序列。(python中內建的三種資料結構:列表、元組、字典,只有字典不是序列)

序列封包例:12

3456

78# 序列封包,把多個值賦給乙個變數

a=1,2,3

print(a)

# 列印 (1, 2, 3)

print(type(a))

# 列印

print(a[1:3])

# 列印 (2, 3)

序列解包:12

3456

78910

1112

1314

1516

1718

19# 建立乙個元組

b='qwer'

c=tuple(b)

print(c,type(c))# 列印 ('q', 'w', 'e', 'r')

k1,k2,k3=c

# 元素個數與變數個數不相等時,解包會報錯:valueerror: too many values to unpack (expected 3)

# 序列解包

k1,k2,k3,k4=c

print(k1,k2,k3,k4)# 列印 q w e r

# 實現變數的值交換

k1,k2,k3,k4=k4,k3,k2,k1

print(k1,k2,k3,k4)# 列印 r e w q

# 不解包進行變數的值交換將會報錯

tyui=1,2,3,4

t,y,u,i=i,u,y,t

# 報錯:nameerror: name 'y' is not defined

當我們在序列解包時,只想解出部分元素時,可以在變數的左邊加「 * 」,該變數就會變成列表,儲存多個元素,例:12

3456

78910

1112

1314

a=tuple(range(10))

print(a)# 列印 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

# 只解出0到2,3到9儲存為乙個列表

b0,b1,b2,*b3=a

print(b3)# 列印 [3, 4, 5, 6, 7, 8, 9]

# 只解出8到9,0到7儲存為乙個列表

*c1,c2,c3=a

print(c1)# 列印 [0, 1, 2, 3, 4, 5, 6, 7]

# 只解出0和9,1到7儲存為乙個列表

c1,*c2,c3=a

print(c2)# 列印 [1, 2, 3, 4, 5, 6, 7, 8]

Python 序列封包和序列解包

序列封包和序列解包 python支援以下兩種賦值方式 程式把多個值賦給乙個變數時,python會自動將多個值封裝成元組。這種功能被稱為序列封包。程式允許將序列直接賦值給多個變數,此時序列的個元素會被依次賦值給每個變數 要求序列的元素個數和變數個數相等 這種功能被稱為序列解包。如下 所示 如果賦值過程...

序列封包和序列解包

程式把多個值賦給乙個變數時,python會自動將多個值封裝成元組,這種功能被稱為序列封包 程式允許將序列 元組或列表等 直接賦值給多個變數,此時序列的各元素會被一次賦值給每個變數,要求序列元素個數和變數個數相等 這種功能被稱為序列解包。a 1,2,3,4 a 1,2,3,4 type a x,y,z...

Python 序列封包與序列解包

什麼叫做序列?序列可以理解為可以進行切片 相加相乘 索引 成員資格 用關鍵字in not in關鍵字判斷某個元素在不在這個序列 例如 列表 元組 字串就是常見的序列。python中內建的三種資料結構 列表 元組 字典,只有字典不是序列 序列封包例 序列封包,把多個值賦給乙個變數 a 1,2,3 pr...