Python 序列封包與序列解包

2021-10-24 05:16:43 字數 1312 閱讀 4233

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

序列封包例:

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

a = 1,2,3

print (a)

# 列印 (1, 2, 3)

print (type(a))

# 列印 print (a[1:3])

# 列印 (2, 3)

序列解包:

# 建立乙個元組

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

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

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 序列解包和序列封包

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

序列封包和序列解包

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