【Python小知识】:什么是序列解包

article/2025/9/23 5:23:17

前言
💂作者简介:大家好,我是翼同学
📃个人主页:翼同学的CSDN博客
🔥系列专栏:【python学习笔记】
👏备注:如果文章有误,请指正,万分感谢!让我们一起学习,一起进步。
✅最后:如果文章对您有帮助,请👍三连支持一下博主哦。🤞

目录

  • 1️⃣序列
  • 2️⃣序列封包
  • 3️⃣序列解包
  • 4️⃣序列解包的好处
  • 5️⃣序列解包的详解
    • 🟥方式一
    • 🟨方式二
    • 🟩方式三
    • 🟦方式四
    • 🟪方式五
  • 6️⃣序列解包中的特殊符号


1️⃣序列

什么是序列?

  • 所谓序列,指的是一块可以存放多个值的连续内存空间
  • 序列的值按顺序排列,每个元素都有一个编号,我们称之为索引
  • 我们可以通过索引来访问序列的元素
  • Python常见的序列是:列表,元组,字符串

2️⃣序列封包

什么是序列封包?

  • 之前讲过,我们将多个值赋给一个变量,那么这个变量就是一个元组

  • 事实上就是Python将这个变量封装成一个元组

  • 这就是序列封包

实例如下:

>>>a = 'a','b', 'c'
>>>a('a', 'b', 'c')
>>>type(a)<class 'tuple'>

3️⃣序列解包

什么是序列解包?

  • 序列解包(Sequence Unpacking)----属于Python赋值语句的一种方法,或者说技巧。
  • 简单地说,序列解包是Python特有的语法,它将可迭代对象给解开,将得到的值存储到一系列变量中。

4️⃣序列解包的好处

  1. 简化代码
  2. 使程序更加简洁
  3. 可读性高
  4. 提高效率
  5. 方便程序员的开发


备注:

如果对可迭代对象不够理解,可以看看下面文章:

  • 【python知识点】你知道Iterable对象吗?什么是迭代器?
  • 【python小知识】:什么是生成器

5️⃣序列解包的详解

🟥方式一

🌱 多个变量的同时赋值

>>>a,b,c = 1,2,3
>>>a1
>>>b2
>>>c3
  • 需要注意的是,变量和值的个数必须对应起来,不然就会抛出ValueError异常。

🟨方式二

🌱 交换两个变量的值

>>>a, b = 20, 56
>>>print(a,b)20 56
>>>b, a = a, b
>>>print(a,b)56 20

🟩方式三

🌱 遍历多个序列

>>>name = ['张三', '李四', '王五']
>>>score = [95,86,92]
>>>for n, s in zip(name,score):print(n,s)
...张三 95李四 86王五 92

🟦方式四

🌱 序列切片也可以解包

>>>m[1, 2, 3, 4, 5]
>>>m[1 : 4] = 20, 30, 40
>>>m[1, 20, 30, 40, 5]

🟪方式五

🌱 将可迭代对象赋给多个变量

例子1:

>>>n = ['a', 'b', 'c']
>>>a,b,c = n
>>>a'a'
>>>b'b'
>>>c'c'

例子2:

>>>a,b,c = range(1,4)
>>>print(a,b,c)1 2 3

例子3:

>>>m = enumerate(['one', 'two', 'three'])
>>>a,b,c = m
>>>print(a,b,c)(0, 'one') (1, 'two') (2, 'three')

例子4:

>>>m = zip(['one','two', 'three'], [1,2,3])
>>>a,b,c = m
>>>print(a,b,c)('one', 1) ('two', 2) ('three', 3)

6️⃣序列解包中的特殊符号

  • 序列解包中有个特殊符号,即*
  • 它使得一个变量可以获得多个值
  • 这多个值被封装成一个列表

例子1:

>>>a,b,*c = 1,2,1,2
>>>a1
>>>b2
>>>c[1, 2]

例子2:

>>>a,*b, c = 1,1,2,2
>>>a1
>>>b[1, 2]
>>>c2

例子3:

>>>*a,b,c = 1,2,1,2
>>>a[1, 2]
>>>b1
>>>c2

例子4:

>>>a,b,*c = 1,2
>>>a1
>>>b2
>>>c[]

例子5:

>>>a,*b, c = 1,2
>>>a1
>>>b[]
>>>c2

例子6:

>>>*a,b,c = 1,2
>>>a[]
>>>b1
>>>c2

好了,关于序列解包的小知识就看到这。

希望文章可以对你有所帮助!


http://chatgpt.dhexx.cn/article/yHAlK19h.shtml

相关文章

python 抓包与解包

我使用的环境为&#xff1a;Windows10、python3.6、scapy 2.4.0 一、基本知识 Sniff方法定义&#xff1a;sniff(filter"",iface"any", prnfunction, countN)filter的规则使用 Berkeley Packet Filter (BPF)语法 iface用来指定要在哪个网络接口上进行抓包&…

.pkg文件解包

PePKG下载 1、拖入 RePKG.exe文件到cmd中 2、输入 extract&#xff0c;并将需要解包的 .pkg文件拖入cmd中 3、输入 -o 4、选择输出路径 创建一个文件拖入cmd中 回车即可完成解包

文件打包解包的方法

文件打包 前言 在很多情况下&#xff0c;软件需要隐藏一些图片&#xff0c;防止用户对其更改&#xff0c;替换。例如腾讯QQ里面的资源图片&#xff0c;哪怕你用Everything去搜索也搜索不到&#xff0c;那是因为腾讯QQ对这些资源图片进行了打包&#xff0c;当软件运行的时候解…

python中拆包解包用法详解

python可以对元组和字典进行拆包或解包操作。 1、拆包&#xff1a;元组 示例代码1&#xff1a; def return_num():return 100, 200num1, num2 return_num() print(num1) # 100 print(num2) # 200运行结果&#xff1a; 示例代码2&#xff1a; def return_num1():return 1…

android-apk解包打包

title: android-apk解包打包 categories: Android tags: [android, 加壳] date: 2022-09-28 10:29:51 comments: false mathjax: true toc: true android-apk解包打包, 以下所有操作都需要在配置好 java 环境下进行 前篇 android apk解包和打包 - https://blog.csdn.net/u0114…

Vue 3 之什么是 解包

Vue 3 之什么是 解包 前言结合代码分析总结 前言 从 Vue2 升到 Vue3 之后,用法上有了很大很大的变化 Vue3可以通过 ref 来声明一些响应式数据,可以是 any 类型的响应式数据 ,在 script 标签中访问和修改这个属性需要用 变量名.value Vue3 3.1 在 template 模板中使用定义的数…

python的解包

解包在英文里叫做 Unpacking&#xff0c;就是将容器里面的元素逐个取出来&#xff08;防杠精&#xff1a;此处描述并不严谨&#xff0c;因为容器中的元素并没有发生改变&#xff09;放在其它地方&#xff0c;好比你老婆去菜市场买了一袋苹果回来分别发给家里的每个成员&#xf…

apk解包+修改源码+重新打包 修改Android端app教程 修改apk文件教程

修改之前一定要先安装java开发环境&#xff0c;不会装的去自行百度。文章较长&#xff0c;耐心阅读。 一直在做Android应用开发&#xff0c;但对于从自己手中输出的apk包&#xff0c;了解并不是很深。最近想研究一下&#xff0c;消除下自己的一些技术盲点。 好吧&#xff0c;…

Python中的解包用法

Python中的解包用法 解包&#xff08;unpacking&#xff1a;解包&#xff0c;拆包&#xff09;&#xff0c;基本意思将容器里面的元素逐个取出来使用。封包&#xff08;packing&#xff1a;封包&#xff0c;打包&#xff09;基本意思将多个元素合起来作为一个整体使用。 可迭代…

SIP协议说明以及报文字段解析

SIP协议的概念&#xff1a; SIP 协议&#xff0c;即 会话初始协议&#xff08;Session Initiation Protocol&#xff09;&#xff0c;是一个应用层的 点对点协议&#xff0c;用于初始、管理和终止网络中的语音和视频会话&#xff0c;是 GB28181 的核心之一。 SIP是一个基于文本…

SIP 协议格式简介

消息体结构&#xff0c;由三部分组成&#xff1a; Request-Line / Status-Line (请求行 / 状态行)Header (消息头)Body (正文) 示例&#xff1a; Request-Line / Status-Line 介绍 Request-Line 格式&#xff1a; MethodRequest-URISIP-VersionCRLFINVITEsip:10011.1.1.1:5060…

会话初始协议---SIP协议【详解】

目录 ​ 一、SIP协议简介 二、SIP消息的两种会话模式 1、Session Model 2、Pager Model 三、SIP消息体格式 1、请求行(request-line) 2、状态行(status-line) 3、消息头 四、SIP消息举例 1、MESSAGE消息&#xff08;Pager Model&#xff09; 2、REGISTER消息 &…

SIP协议-02 原理讲解

文章目录 1 SIP实现机制2 SIP网络元素2.1 用户代理2.2 代理服务器2.3 重定向服务器2.4 位置服务器2.5 注册服务器 3 SIP中的几个重要概念3.1 Messages(消息)3.2 Dialog(对话)3.3 Transaction(事务)3.4 Session(会话) 4 工作流程4.1 登记注册4.2 建立呼叫4.3 重定向呼叫 5 SIP超…

SIP协议(二)

语音编码&#xff0c;语音帧&#xff0c;会议室 &#xff08;1&#xff09;语音编码&#xff0c;语音帧 &#xff08;2&#xff09;补充会议室的抓包 语音编码 现主要有的语音编码有: G.711, G.723, G.726 , G.729, ILBC&#xff0c;QCELP, EVRC, AMR, SMV 各种编解码都有其…

SIP协议解析与实现

SIP协议解析与实现 本文将按照RFC3261逐步的介绍SIP协议,介绍了c和c语言的实现&#xff0c;分析了osip库的使用和实现。 第一章 概述 一 概述 SIP协议是一个基于应用层的会话控制协议。它可以创建、修改、终止多媒体会话(会议)&#xff0c;也可以邀请参与者加入到一个现有的…

SIP协议-01 简介与入门

文章目录 1 介绍1.1 VoIP技术1.2 SIP&#xff08;Session Initiation Protocol&#xff09;1.3 SIP承载1.4 SIP的几个主要标准协议 2 SIP协议栈2.1 PJSIP协议栈2.2 ReSIProcate协议栈2.3 OPAL协议栈2.4 VOCAL协议栈2.5 sipX协议栈2.6 oSIP协议栈 SIP&#xff08;Session Initia…

通信系列2: 深入浅出SIP协议

传统电话是电磁波的通信&#xff0c;当电话技术发展到IP技术时代&#xff0c;SIP协议成为了电话通信标准协议&#xff0c;不仅可以通电话、还可以收发信息、视频、开会、放PPT。事实上&#xff0c;今天的通信业已全面采用SIP协议作为通信标准&#xff0c;无论是固定电话、还是移…

SIP协议简介(一)之SIP基本的概述

本篇文章主要是对RFC3261翻译进行的&#xff0c;也包含着自己的一些理解。希望能给需要的人带来一些帮助 补充说明&#xff1a;RFC即Request For Comments&#xff08;RFC&#xff09;&#xff0c;是一系列以编号排定的文件。文件收集了有关互联网相关信息&#xff0c;以及UNI…

SIP协议(一)

熟悉SIP的一些基本常识概念相关协议&#xff0c; 网络元素&#xff0c;分层结构&#xff0c; 不同请求消息类型&#xff0c;响应消息类型 SDP的一些概念基础 SIP SIP&#xff08;Session Initiation Protocol&#xff09;会话初始化协议&#xff0c;是有IETE&#xff08;I…

SIP协议简介(比较全面)

介绍 通信提供商及其合作伙伴和用户越来越渴求新一代基于 IP 的服务。现在有了 SIP协议&#xff08;会话启动协议&#xff09;&#xff0c;一解燃眉之急。SIP协议 是不到十年前在计算机科学实验室诞生的一个想法。它是第一个适合各种媒体内容而实现多用户会话的协议&#xff0…