Python——序列封包與序列解包

来源:https://www.cnblogs.com/mingmingming/archive/2019/06/20/11061892.html
-Advertisement-
Play Games

一、序列封包與序列解包 把多個值賦給一個變數時,Python會自動的把多個值封裝成元組,稱為序列封包。 把一個序列(列表、元組、字元串等)直接賦給多個變數,此時會把序列中的各個元素依次賦值給每個變數,但是元素的個數需要和變數個數相同,這稱為序列解包。 什麼叫做序列?序列可以理解為可以進行切片、相加相 ...


一、序列封包與序列解包

  • 把多個值賦給一個變數時,Python會自動的把多個值封裝成元組,稱為序列封包。
  • 把一個序列(列表、元組、字元串等)直接賦給多個變數,此時會把序列中的各個元素依次賦值給每個變數,但是元素的個數需要和變數個數相同,這稱為序列解包。

什麼叫做序列?序列可以理解為可以進行切片、相加相乘、索引、成員資格(用關鍵字in、not in關鍵字判斷某個元素在不在這個序列),例如:列表、元組、字元串就是常見的序列。(Python中內置的三種數據結構:列表、元組、字典,只有字典不是序列)

序列封包例:

# 序列封包,把多個值賦給一個變數
a = 1,2,3
print (a)
# 列印 (1, 2, 3)
print (type(a))
# 列印 <class 'tuple'>
print (a[1:3])
# 列印 (2, 3)  

 

序列解包:

# 創建一個元組
b = 'qwer'
c = tuple(b)
print (c,type(c))    # 列印 ('q', 'w', 'e', 'r') <class 'tuple'>

k1,k2,k3 = c
# 元素個數與變數個數不相等時,解包會報錯:ValueError: too many values to unpack (expected 3)

# 序列解包
k1,k2,k3,k4 = c
print (k1,k2,k3,k4)    # 列印 q w e r
# 實現變數的值交換
k1,k2,k3,k4 = k4,k3,k2,k1
print (k1,k2,k3,k4)    # 列印 r e w q

# 不解包進行變數的值交換將會報錯
tyui = 1,2,3,4
t,y,u,i = i,u,y,t
# 報錯:NameError: name 'y' is not defined

 

當我們在序列解包時,只想解出部分元素時,可以在變數的左邊加“ * ”,該變數就會變成列表,保存多個元素,例:

a = tuple(range(10))
print(a)    # 列印 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

# 只解出0到2,3到9保存為一個列表
b0,b1,b2,*b3 = a
print (b3)    # 列印 [3, 4, 5, 6, 7, 8, 9]

# 只解出8到9,0到7保存為一個列表
*c1,c2,c3 = a
print (c1)    # 列印 [0, 1, 2, 3, 4, 5, 6, 7]

# 只解出0和9,1到7保存為一個列表
c1,*c2,c3 = a
print(c2)    # 列印 [1, 2, 3, 4, 5, 6, 7, 8]

  

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分析出現no Session錯誤的原因以及給出解決方案: 使用SpringMVC + JSON數據返回時,經常會出現no Session的錯誤: 報錯原因:因為懶載入在提取關聯對象的屬性值的時候發現EntityManager已經被關閉,就報no session錯誤。 控制器類中的方法上添加了@Res ...
  • 策略模式:定義了不同的演算法,分別分裝起來,讓他們可以互相替換,即使演算法變化了,也不會影響到使用演算法的用戶 首先定義一個抽象演算法類,有兩個類繼承了這個抽象類,重寫了AlgorithmInterface()方法 用一個context類來維護對抽象演算法類Strategy對象的引用(重點) 測試類1 但是從 ...
  • 在 Spring Boot 中集成 Shiro,並使用 JWT 進行介面認證。 為了統一對 Token 進行過濾,所以自定義了一個 過濾器。 期間遇到了以下幾個問題,這裡逐一進行記錄,以備日後查閱。 問題一:JwtTokenFilter 無法使用 @Autowired 因為自定義了一個 JWT To ...
  • IDEA設置取消自動顯示參數提示 最近在使用IDEA的過程中,發現方法中一直顯示形參名的提示,無法選中,也無法刪除,基於不同人的使用習慣不同,有的人不喜歡這種提示,我也在網上尋找各種解決方案,由於搜索關鍵詞不對,一直沒能解決,不過好基友及時幫助,順利解決,多謝我的大副。 取消參數提示之前,我的方法中 ...
  • 關於django中的APPEND_SLASH 它是啥? 看變數名大概能知道做什麼,就是添加斜線,用路由系統那裡。 路由文件,只寫了路由關係代碼 APPEND_SLASH這個常量預設為True,就是假如你沒有添加斜線,他會幫你添加上(總體是這樣,具體得看源碼怎麼寫的了) 執行命名行代碼啟動django ...
  • 涉及Dynamics ax 行業已經好幾年了,準備總結一些有用的處理方法供大家來參考 首先先介紹下Computed column技術,該技術是微軟在AX2012版本中提供的新技術,可以讓SQL語句在AX view中使用,這樣就可以將想要的值拼接在一條交易記錄上,這樣就可以針對數據進行批量處理,所以想 ...
  • 一、登錄功能實現: html頁面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>主頁</title> <script src="https://cdn.bootcss.com/jquery/3.4.1/j ...
  • 轉載:https://blog.csdn.net/sinat_30474567/article/details/79712834 隨著近年來SOA(面向服務技術架構)的興起,越來越多的應用系統開始進行分散式的設計和部署。系統由原來單一的技術架構變成面向服務的多系統架構。原來在一個系統之間可以完成的業 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...