什麼叫作序列?序列能夠理解爲能夠進行切片、相加相乘、索引、成員資格(用關鍵字in、not in關鍵字判斷某個元素在不在這個序列),例如:列表、元組、字符串就是常見的序列。(Python中內置的三種數據結構:列表、元組、字典,只有字典不是序列)python
序列封包例:數據結構
# 序列分包,把多個值賦給一個變量 a = 1,2,3 print (a) # 打印 (1, 2, 3) print (type(a)) # 打印 <class 'tuple'> print (a[1:3]) # 打印 (2, 3)
序列解包:ui
# 建立一個元組 b = 'qwer' c = tuple(b) print (c,type(c)) # 打印 ('q', 'w', 'e', 'r') <class 'tuple'> 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
當咱們在序列解包時,只想解出部分元素時,能夠在變量的左邊加「 * 」,該變量就會變成列表,保存多個元素,例:blog
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]