• python解包


    概念

      python的解包可以这样来理解:把元素给拆分并把其赋值给自己所需要的变量,因此元素应该是一个可迭代对象。

    形式

      简单版本

      下面展示的是解包的基本形式,根据长度赋值给对应多的变量。

    name_list = ["Jone", "Jack", "Alex", "Tony"]
    n1, n2, n3, n4 = name_list
    print(n1)
    print(n2)
    print(n3)
    print(n4)
    
    """
    Jone
    Jack
    Alex
    Tony
    """

      注:这种形式一定是一样多个变量否者会报错 -> ValueError: too many values to unpack

      升级版本

      有时候我们就需要其中的一部分,那怎么办呢?其实也很简单:与 * 一起使用。

      假如只要开头和结尾:

      

    name_list = ["Jone", "Jack", "Alex", "Tony"]
    n1, *_, n4 = name_list
    print(n1)
    print(n4)
    
    """
    Jone
    Tony
    """

      假如只要开头或结尾

    name_list = ["Jone", "Jack", "Alex", "Tony"]
    n1, *_ = name_list
    *_, n4 = name_list
    print(n1)
    # Jone
    
    print(n4)
    # Tony

      

     注: 此处的*表示自动连续取值,只要是没有明确说给哪个变量的它都要(可能表述的不够准确),_ 表示"不要的",其实它也是一个变量,但在python中是一个约定,正如类的_开头一样,不作任何强制性的约束。这与GO有很大的不同。

      其他情景

      

    msg = "This article is about the chemical compound"
    msg_list = msg.split()  # ['This', 'article', 'is', 'about', 'the', 'chemical', 'compound']
    
    # 取前面几个
    m1, m2, m3, *_ = msg_list
    
    # 取后面几个
    *_, m4, m5, m6 = msg_list
    
    # 取两边的
    
    a1, a2, *_, a3, a4 = msg_list
  • 相关阅读:
    .NET Framework 1.13.5 版本安装包下载链接
    可遇不可求的Question之MYSQL获取自增ID的四种方法篇
    20110917 晴
    北海道 7天6夜 自助游
    想你了
    猫忘带电话了
    [转载经验] 探亲签证申请
    帮忙打印
    打印机
    20110910 晴
  • 原文地址:https://www.cnblogs.com/lczmx/p/11631018.html
Copyright © 2020-2023  润新知