什么叫做序列?序列可以理解为可以进行切片、相加相乘、索引、成员资格(用关键字in、not in关键字判断某个元素在不在这个序列),例如:列表、元组、字符串就是常见的序列。(Python中内置的三种数据结构:列表、元组、字典,只有字典不是序列)
序列封包例:
|
1
2
3
4
5
6
7
8
|
# 序列封包,把多个值赋给一个变量a = 1,2,3print (a)# 打印 (1, 2, 3)print (type(a))# 打印 <class ‘tuple‘>print (a[1:3])# 打印 (2, 3) |
序列解包:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# 创建一个元组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 = cprint (k1,k2,k3,k4) # 打印 q w e r# 实现变量的值交换k1,k2,k3,k4 = k4,k3,k2,k1print (k1,k2,k3,k4) # 打印 r e w q# 不解包进行变量的值交换将会报错tyui = 1,2,3,4t,y,u,i = i,u,y,t# 报错:NameError: name ‘y‘ is not defined |
当我们在序列解包时,只想解出部分元素时,可以在变量的左边加“ * ”,该变量就会变成列表,保存多个元素,例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
a = tuple(range(10))print(a) # 打印 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)# 只解出0到2,3到9保存为一个列表b0,b1,b2,*b3 = aprint (b3) # 打印 [3, 4, 5, 6, 7, 8, 9]# 只解出8到9,0到7保存为一个列表*c1,c2,c3 = aprint (c1) # 打印 [0, 1, 2, 3, 4, 5, 6, 7]# 只解出0和9,1到7保存为一个列表c1,*c2,c3 = aprint(c2) # 打印 [1, 2, 3, 4, 5, 6, 7, 8] |
原文:https://www.cnblogs.com/vincent-sh/p/12687411.html