Bootstrap

python中的序列封包和序列解包

今天我们要学的内容是python中的序列封包和序列解包,在此之前,我要先给你们讲解一下python中的序列

可能刚接触python的朋友们都听过序列这个词,那么什么是序列呢?

序列就是可以进行索引和切片的操作,比如说我们的列表和元组,还有字符串。他们除了可以进行这些操作外,和可以进行相加或者相乘(注意:这个相乘指的是列表,元组或者字符串和数字的相乘,并不是他们自己之间的相乘。)

扩展:python中的三种内置数据结构:列表,元组,字典,只有字典不是序列,剩下的两个都是。

好了,你们了解了吗?如果还不明白的话下去自己复习一下列表,元组和字符串的相关属性和操作哦~~~~

那么接下来进入正题,什么是序列封包和序列解包呢?

先简单了解一下封包和解包的概念。

封包和解包可以这样理解:比如说你点了一份外卖,商家把你的饭装到打包盒里就可以成为封包,解包也等同于你把打包好的饭拆开。

那么什么是python中的序列封包和序列解包呢?

  • 序列封包就是当你把多个值赋予给一个变量时,python会自动的把多个值封装成元组。
    eg:
a=1,2,3  
print(a)   #打印结果:(1,2,3)
print(type(a))#打印结果(<class 'tuple'>)
#序列可以进行索引和切片的操作
print(a[1]) #打印结果: 2            索引
print(a[1:3]) #打印结果:(2,3) 切片
b=4,5,6
print(a+b)#打印结果:(1,2,3,4,5,6)
print(b*2)#打印结果:(8,10,12)
  • 序列解包就是把一个序列(列表,元组,字符串)直接赋予给多个变量,此时会把序列中的各个元素依次赋值给每个变量,但是元素的个数需要和变量的个数相同。

eg:

#创建一个元组
a='python'
b=tuple(a)#打印结果:('p','y','t','h','o','n')
k1,k2,k3,k4,k5,k6=b
print(k1)#打印结果:p
k1,k2,k3,k4,k5=c
print(k1)
打印结果:
Traceback (most recent call last):
  File "nine.py", line 35, in <module>
    k1,k2,k3,k4,k5=c  #序列解包失败,太多参数需要解包
ValueError: too many values to unpack (expected 5)

上面报错的原因是序列中的元素和变量的个数不相等。会报valueError错误。

#解包时进行值的替换
a='python'
k1,k2,k3,k4,k5,k6=a
print(k1)#打印结果:p
k1,k2,k3,k4,k5,k6=k6,k5,k4,k3,k2,k1
print(k1)#打印结果:n

这里还有一个骚操作~~~,有需要的可以接收一下哈~~~·

当我们在序列解包的时候,如果不想全部解出的话怎么办?????

呀呀呀,难搞哦~~~

放心,你遇到的都不是事。(ૢ˃ꌂ˂ૢ)

m='python'
n=tuple(m)#将字符串m转换为元组
print(n)#打印结果:('p', 'y', 't', 'h', 'o', 'n')
b1,b2,b3,b4,b5,b6=n #将元组n进行解包
print(b1)  #打印结果:p
c1,c2,*c3=n #取出部分,
print(c3)#打印结果:['t', 'h', 'o', 'n']
print(type(c3))#打印结果:<class 'list'>

好了,回忆一下喽!
今天主要是了解了一下序列的概念,学习了python中的序列封包和序列解包,最后还有一个序列解包的骚操作,大家下去可以练习一下哦~~
不断学习,努力成长。

如果你觉得这篇文章对你有用的话,请作者吃颗棒棒糖吧~~~~
在这里插入图片描述
(哈哈哈,本人姓刘,禾苗的苗,刘苗苗。打赏的话都可以的哦,文章有价值就好。鼓励一下啦~~·)
加油,努力终有回报的!!!!

;