• 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 解压可迭代对象赋值给多个变量

  • 相关阅读:
    iOS8及以后 地图定位当前城市
    UITextView换行问题解决办法
    使用七牛上传图片代码,导入文件常遇问题解决方法
    CocoaPods安装和使用
    Xcode7真机测试
    Label 添加表情图片
    TTTAttributedLabel使用介绍(转)
    带有中文的url和NSString中文的转换
    正则表达式的使用 选取有用数据
    导航网格配置笔记
  • 原文地址:https://www.cnblogs.com/Python666/p/6637502.html
Copyright © 2020-2023  润新知