zoukankan      html  css  js  c++  java
  • Python的序列封包和序列解包功能---两种赋值方式实例说明

    Python提供了序列封包和序列解包功能,可以实现:

    1、将多个值赋给一个变量时,Python会自动将多个值封装成元组。这个功能就称为序列封包;

    2、允许将序列(元组或者列表等)直接赋值给多个变量,此时序列的各元素被依次赋值给每一个变量,此处要求序列的元素个数和变量个数相等,这个功能就成为序列解包。

    例如:

    # 序列封包示例,将1、2、3封装成元组后赋值给nums

    >>> nums = 1, 2, 3
    >>> print(nums)
    (1, 2, 3)
    >>> print(nums[1])
    2

    # 序列解包,将tuple_temp的各元素依次赋值给a, b, c, d, e

    >>> tuple_temp = tuple(range(1, 10, 2))
    >>> print(tuple_temp)
    (1, 3, 5, 7, 9)
    >>> a, b, c, d, e = tuple_temp
    >>> print(a, b, c, d, e)
    1 3 5 7 9

    # 将序列封包和序列解包同时运用,就可以让赋值运算符支持同时将多个值赋值给多个变量。例如:

    >>> a, b, c = 1, 2, 3
    >>> print(a, b, c)
    1 2 3

    # 此处相当于执行了如下过程:

    # 先进行序列封包,将1、2、3封装到元组abc中

    abc = 1, 2, 3

    # 再执行序列解包到变量a、b、c中

    a, b, c = abc

    # 序列解包时,可以解出部分变量,剩下的依然使用列表变量保存。为了这样操作,Python允许在左边被赋值的变量之前添加“*”,那么该变量就代表一个列表,可以保存多个集合元素,例如:

    >>> a, b, *restnum = range(10)
    >>> print(a)
    0
    >>> print(b)
    1
    >>> print(restnum)
    [2, 3, 4, 5, 6, 7, 8, 9]

    >>> *frontnum, lastnum = range(10)
    >>> print(frontnum)
    [0, 1, 2, 3, 4, 5, 6, 7, 8]
    >>> print(lastnum)
    9

    >>> frontnum, *middlenum, lastnum = range(10)
    >>> print(frontnum)
    0
    >>> print(middlenum)
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> print(lastnum)
    9

  • 相关阅读:
    1013:温度表达转化
    1012:计算多项式的值
    1012:计算多项式的值
    1012:计算多项式的值
    数据结构——线性表
    数据结构——线性表
    数据结构——线性表
    SqlSever查询某个表的列名称、说明、备注、注释,类型等
    SqlSever查询某个表的列名称、说明、备注、注释,类型等
    SQL:将查询结果插入到另一个表的三种情况
  • 原文地址:https://www.cnblogs.com/xinyu602/p/12097162.html
Copyright © 2011-2022 走看看