一、序列解析

  序列:指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置序号(索引)访问它们。Python中的序列有【列表、元祖、字符串】

二、序列解包:

  序列解包:适用于【元祖、列表、字典】。把一个序列直接赋值给多个变量,此时会把序列中的各个元素依次赋值给每个变量,但是元素的个数需要和变量个数相同(可以用 ”*” 表示不定数量)。序列解包用于字典时,默认是对“键”进行操作;如果需要对键值对操作,则需要使用items();如果需要对"值"进行操作,则需要使用values()。

a = ('打篮球','游泳','跑步')
b = ['苹果','梨子','桃子']
c = {'name':"佩琪",'age':3,'job':"学生"}

# s1,s2,s3 = a
# s1,s2,s3 = b
# s1,s2,s3 = c
# s1,s2,s3 = c.values()  # 取“值”
s1,s2,s3 = c.items()  # 取“键值对”

print(s1,s2,s3)


>>打篮球 游泳 跑步
>>苹果 梨子 桃子
>>name age job
>>佩琪 3 学生
>>('name', '佩琪') ('age', 3) ('job', '学生')
a = ('打篮球','游泳','跑步','打羽毛球','打乒乓球','画画')
# s1,s2,*s3 = a   # 用 “*”表示不定数量
s1,*s2,s3 = a

print(s1,s2,s3)


>>打篮球 游泳 ['跑步', '打羽毛球', '打乒乓球', '画画']
>>打篮球 ['游泳', '跑步', '打羽毛球', '打乒乓球'] 画画

 练习:

  1.假如一个字符串 ‘ABCDEFGH’,要输出99乘法表的格式。

s = 'ABCDEFGH'
while s:
    # x, s = s[0], list(s[1:])   # 一般写法
    a, *s = s                  # 使用序列解包
    print(a, s)


>>A ['B', 'C', 'D', 'E', 'F', 'G', 'H']
>>B ['C', 'D', 'E', 'F', 'G', 'H']
>>C ['D', 'E', 'F', 'G', 'H']
>>D ['E', 'F', 'G', 'H']
>>E ['F', 'G', 'H']
>>F ['G', 'H']
>>G ['H']
>>H []

三、序列封包

  序列封包:把多个值赋给一个变量时,Python会自动把多个值封装成一个元祖。

a = 1,2,3,4,5
demo = a

print(demo)


>>(1, 2, 3, 4, 5)