概念
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/114506.html
標籤:其他
上一篇:HTTPS 為什么比較安全
