zoukankan      html  css  js  c++  java
  • python中元组(tuple)的拆包unkacping

      python中的元组tuple同列表ist相比较,既有相同又有不同,元组一般用()圆括号来定义,不同之处总结起来在于元组中的元素是不能修改的,而其余的索引index,切片,运算符操作等等和list基本一样,但是tuple有了个拆包unpacking的用法,今天学习过程中遇到了,同大家分享如下:

    Python中如果要初始化多个变量,可以用下面的方式:

    1 >>>a,b,c,d = 1,2,3,4
    2 >>>a,b,c,d
    3 >>>(1, 2, 3, 4)

    以上代码给a,b,c,d分别赋值1,2,3,4,这时候a是1,b是2,c是3,d是4

    还有更绝的拆包方法,那就是用星号*来吸收多余的元素:

     1 In [146]: x = (1,2,3,4,5)
     2 
     3 >>>a, *b = x # x有5个元素,左边变量只有两个,多余的都被带*的b吸收了
     4 
     5 >>>a, b
     6 >>>(1, [2, 3, 4, 5])
     7  
     8 >>>a, *b, c = x              #由于带*的b的存在,b“吸收”了多余元素
     9 >>>a,b,c
    10 >>>(1, [2, 3, 4], 5)
    11 
    12 >>>*a, b, c = x             #带*的a“吸收”多余元素
    13 
    14 >>>a,b,c
    15 >>>([1, 2, 3], 4, 5)
    16 
    17 >>>a,b,c = x                   #没有带*的,x的5个元素无法匹配3个变量,产生错误
    18 
    19 """
    20 此处会报出一个错误:
    21 ValueError     Traceback (most recent call last)
    22 <ipython-input-153-58e3b82a91cc> in <module>
    23 ----> 1 a,b,c = x
    24 
    25 ValueError: too many values to unpack (expected 3)
    26 """
  • 相关阅读:
    MRF能量优化
    Django:model中的ForeignKey理解
    Django:常见的orm操作
    Django:在模板中获取当前url信息
    Django:haystack全文检索详细教程
    Django:全文检索功能可参考博客
    看电影学英语
    Markdown中怎么上传图片
    Mosquitto的安装、配置、测试
    Django:评论文章后局部刷新评论区
  • 原文地址:https://www.cnblogs.com/wind-under-the-wing/p/11769830.html
Copyright © 2011-2022 走看看