zoukankan      html  css  js  c++  java
  • Python3序列赋值、序列解包详解(上)

    ###概述
    赋值是各个编程语言通用的概念,而在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')
    

      

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


    原文:https://blog.csdn.net/Karven_/article/details/90146246

  • 相关阅读:
    AE二次开发,解决子窗体使用父窗体的AxControl控件
    ArcEngine二次开发中运行出现There is no Spatial Analyst license currently available or enabled.
    Js网站开发学习第一天
    Winform开发1
    MySql安装
    Windows ping加时间戳
    XML特性总结
    linux手册中函数名后小括号中数字的含义
    TCP通信
    swap交换分区概念
  • 原文地址:https://www.cnblogs.com/qbdj/p/10882164.html
Copyright © 2011-2022 走看看