Python3序列赋值、序列解包详解(上)

系统 240 0

###概述
赋值是各个编程语言通用的概念,而在Python有多种赋值方法以供选择,比如元组、列表、序列赋值运算等,甚至还有扩展的序列解包赋值方法完成更加复杂的赋值运算。

一些基本赋值运算

下面示例介绍了元组赋值运算、列表赋值运算及任意对象的序列赋值的简单使用

            
              
                # 元组赋值运算
              
              
one
              
                ,
              
               two
              
                ,
              
               three 
              
                =
              
              
                (
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                )
              
              
                print
              
              
                (
              
              one
              
                ,
              
               two
              
                ,
              
               three
              
                )
              
              
                # 列表赋值运算
              
              
one
              
                ,
              
               two
              
                ,
              
               three 
              
                =
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ]
              
              
                print
              
              
                (
              
              one
              
                ,
              
               two
              
                ,
              
               three
              
                )
              
              

one 
              
                =
              
              
                1
              
              
two 
              
                =
              
              
                2
              
              
                # 简单序列赋值赋值
              
              
A
              
                ,
              
               B 
              
                =
              
               one
              
                ,
              
               two

              
                print
              
              
                (
              
              A
              
                ,
              
               B
              
                )
              
              
                # 将元组中的值赋值给列表
              
              
                [
              
              a
              
                ,
              
               b
              
                ,
              
               c
              
                ]
              
              
                =
              
              
                (
              
              
                'A'
              
              
                ,
              
              
                'B'
              
              
                ,
              
              
                'C'
              
              
                )
              
              
                print
              
              
                (
              
              
                [
              
              a
              
                ,
              
               b
              
                ,
              
               c
              
                ]
              
              
                )
              
            
          

示例结果:

            
              1 2 3
1 2 3
1 2
['A', 'B', 'C']

            
          

从示例我们看到,右侧实际上支持任意可迭代的对象,但前提是右侧对象内的元素个数需要与左侧对应相等,比如将右侧元组的值赋值左侧的列表中。

高级序列赋值元素

前面我们提到序列赋值的元素条件之一就是等号两边的元素数量需要相等,但是在Python3中我们可以利用更加实用的扩展解包的方法,当然我们也可以利用其它的方式解决,比如利用切片解决一些元素不相等的情形。

            
              S 
              
                =
              
              
                'STR'
              
              
a
              
                ,
              
               b
              
                ,
              
               c 
              
                =
              
               S

              
                print
              
              
                (
              
              a
              
                ,
              
               b
              
                ,
              
               c
              
                )
              
              
                # 利用切片解决两边元素不相等的情形
              
              
S 
              
                =
              
              
                'PYTHON'
              
              
a
              
                ,
              
               b
              
                ,
              
               c 
              
                =
              
               S
              
                [
              
              
                0
              
              
                ]
              
              
                ,
              
               S
              
                [
              
              
                1
              
              
                ]
              
              
                ,
              
               S
              
                [
              
              
                2
              
              
                :
              
              
                ]
              
              
                print
              
              
                (
              
              a
              
                ,
              
               b
              
                ,
              
               c
              
                )
              
              
                # 嵌套赋值
              
              
                (
              
              a
              
                ,
              
               b
              
                )
              
              
                ,
              
               c 
              
                =
              
               S
              
                [
              
              
                :
              
              
                2
              
              
                ]
              
              
                ,
              
               S
              
                [
              
              
                2
              
              
                :
              
              
                ]
              
              
                print
              
              
                (
              
              
                (
              
              a
              
                ,
              
               b
              
                )
              
              
                ,
              
               c
              
                )
              
            
          

示例结果:

            
              ('S', 'T', 'R')
('P', 'Y', 'THON')
(('P', 'Y'), 'THON')

            
          

可以看到我们甚至可以利用切片进行嵌套赋值,完成更加复杂赋值运算。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论