前言:
💂作者简介:大家好,我是翼同学!
📃个人主页:翼同学的CSDN博客
🔥系列专栏:【python学习笔记】
👏备注:如果文章有误,请指正,万分感谢!让我们一起学习,一起进步。
✅最后:如果文章对您有帮助,请👍三连支持一下博主哦。🤞
1️⃣序列
什么是序列?
- 所谓序列,指的是一块可以存放多个值的连续内存空间
- 序列的值按顺序排列,每个元素都有一个编号,我们称之为索引
- 我们可以通过索引来访问序列的元素
- Python常见的序列是:列表,元组,字符串
2️⃣序列封包
什么是序列封包?
之前讲过,我们将多个值赋给一个变量,那么这个变量就是一个元组
事实上就是Python将这个变量封装成一个元组
这就是序列封包
实例如下:
>>>a = 'a','b', 'c'
>>>a
('a', 'b', 'c')
>>>type(a)
<class 'tuple'>
3️⃣序列解包
什么是序列解包?
- 序列解包(
Sequence Unpacking
)----属于Python
赋值语句的一种方法,或者说技巧。- 简单地说,序列解包是
Python
特有的语法,它将可迭代对象给解开,将得到的值存储到一系列变量中。
4️⃣序列解包的好处
- 简化代码
- 使程序更加简洁
- 可读性高
- 提高效率
- 方便程序员的开发
备注:
如果对可迭代对象不够理解,可以看看下面文章:
5️⃣序列解包的详解
🟥方式一
🌱 多个变量的同时赋值
>>>a,b,c = 1,2,3
>>>a
1
>>>b
2
>>>c
3
- 需要注意的是,变量和值的个数必须对应起来,不然就会抛出
ValueError
异常。
🟨方式二
🌱 交换两个变量的值
>>>a, b = 20, 56
>>>print(a,b)
20 56
>>>b, a = a, b
>>>print(a,b)
56 20
🟩方式三
🌱 遍历多个序列
>>>name = ['张三', '李四', '王五']
>>>score = [95,86,92]
>>>for n, s in zip(name,score):
print(n,s)
...
张三 95
李四 86
王五 92
🟦方式四
🌱 序列切片也可以解包
>>>m
[1, 2, 3, 4, 5]
>>>m[1 : 4] = 20, 30, 40
>>>m
[1, 20, 30, 40, 5]
🟪方式五
🌱 将可迭代对象赋给多个变量
例子1:
>>>n = ['a', 'b', 'c']
>>>a,b,c = n
>>>a
'a'
>>>b
'b'
>>>c
'c'
例子2:
>>>a,b,c = range(1,4)
>>>print(a,b,c)
1 2 3
例子3:
>>>m = enumerate(['one', 'two', 'three'])
>>>a,b,c = m
>>>print(a,b,c)
(0, 'one') (1, 'two') (2, 'three')
例子4:
>>>m = zip(['one','two', 'three'], [1,2,3])
>>>a,b,c = m
>>>print(a,b,c)
('one', 1) ('two', 2) ('three', 3)
6️⃣序列解包中的特殊符号
- 序列解包中有个特殊符号,即
*
号- 它使得一个变量可以获得多个值
- 这多个值被封装成一个列表
例子1:
>>>a,b,*c = 1,2,1,2
>>>a
1
>>>b
2
>>>c
[1, 2]
例子2:
>>>a,*b, c = 1,1,2,2
>>>a
1
>>>b
[1, 2]
>>>c
2
例子3:
>>>*a,b,c = 1,2,1,2
>>>a
[1, 2]
>>>b
1
>>>c
2
例子4:
>>>a,b,*c = 1,2
>>>a
1
>>>b
2
>>>c
[]
例子5:
>>>a,*b, c = 1,2
>>>a
1
>>>b
[]
>>>c
2
例子6:
>>>*a,b,c = 1,2
>>>a
[]
>>>b
1
>>>c
2
好了,关于序列解包的小知识就看到这。
希望文章可以对你有所帮助!