zoukankan      html  css  js  c++  java
  • Python数据结构和类型--解压序列赋值多个变量

    Python数据结构和类型

    1.1 解压序列赋值给多个变量

    现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量?

    解决思路:先通过简单的解压赋值给多个变量,前提是变量的数量和序列元素的数量是一致的

    下面是简单的代码

    p = (1,2,3)   # 这里的p是一个元组tuple
    x,y,y = p
    >>>x ---1
    >>>y---2
    >>>z---3
    
    **代码实现1**
    data = [ 'ABC',20,30.11,(16,28,99) ]   # data中的元素有4个
    name,share,price,hello = data     # 赋值
    
    >>>name
    'ABC'
    
    >>>share
    20
    
    >>>price
    30.11
    
    >>>date
    (16,28,39)
    
    **代码实现2**
    
    data = [ 'ABC',20,30.11,(16,28,99) ]   
    
    name,share,price,(one,two,three)= data 
    
    >>>name 
    'ABC'
    
    >>>one
    
    16
    
    >>>two
    28
    
    >>>three
    99
    
    
    

    如果变量个数和元素的个数不匹配,就会出现错误

    
    >>>p = ( 4,5)
    x,y,z = p    #变量的个数超过元素的个数
    
    ValueError: not enough values to unpack (expected 3, got 2)	
    

    这种解压赋值适合任何迭代对象,字符串,。。。。

    >>> a,b,c,d,e = p
    >>> a
    'h'
    >>> b
    'e'
    >>> c
    'l'
    >>> d
    'l'
    >>> e
    'o'
    >>>
    

    如果想要解压一部分,丢弃其他值,只需要通过任意变量进行占位,最后将这些变量丢弃即可

    data = [ 'ABC',20,30.11,(16,28,99) ] 
    _,share,price,_ = data
    >>>share
    20
    >>>price
    30.11
    
    

    在测试中发现,输入丢弃变量的* _ *的时候,显示的值是(16,28,99),这里的原理不清楚,

    经过园有的评论知道,_ 已经被最后一个值(16,28,99) 重新赋值了

    1.2 解压可迭代对象赋值给多个变量

  • 相关阅读:
    AIO 异步时间非阻塞I/O
    学习计算机视觉(持续更新中..)
    转:Dropout解决过拟合问题
    转:non-saturating nonlinearity
    numpy, matplotlib, pandas 精品教程
    转:计算机视觉竞赛平台汇总
    计算机视觉:rcnn、fast-rcnn、faster-rcnn、SSD、YOLO
    转: 批标准化Batch Normalization
    用PCA对鸢尾花数据集降维并可视化
    Python实现PCA降维
  • 原文地址:https://www.cnblogs.com/Python666/p/6637502.html
Copyright © 2011-2022 走看看