返回顶部
首页 > 资讯 > 后端开发 > Python >Python3 序列解包
  • 316
分享到

Python3 序列解包

序列 2023-01-31 03:01:16 316人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

python 中有很多很实用的语法糖,这些语法糖可以帮助我们简化代码、更易理解等优点,接下里再看一个 python3 中特别实用的语法序列解包(序列解包是 Python 3.0 之后才有的语法)。那什么是序列解包呢?先看一个例子:>

python 中有很多很实用的语法糖,这些语法糖可以帮助我们简化代码、更易理解等优点,接下里再看一个 python3 中特别实用的语法序列解包(序列解包是 Python 3.0 之后才有的语法)。

那什么是序列解包呢?先看一个例子:

>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3
>>> 

这种方法并不限于列表和元组,而是适用于任意序列类型(甚至包括字符串和字节序列)。只要赋值运算符左边的变量数目与序列中的元素数目相等,你都可以用这种方法将元素序列解包到另一组变量中。

解包的使用还可以更有逼格,可以利用 * 表达式获取单个变量中的多个元素,只要它的解释没有歧义即可。

* 获取的值默认为 list

# 获取剩余部分:

>>> a, b, *c = 0, 1, 2, 3
>>> a
0
>>> b
1
>>> c
[2, 3]

# 获取中间部分:

>>> a, *b, c = 0, 1, 2, 3
>>> a
0
>>> b
[1, 2]
>>> c
3

# 如果左值比右值要多,那么带 * 的变量默认为空

>>> a, b, *c = 0, 1
>>> a
0
>>> b
1
>>> c
[]
>>> a, *b, c = 0, 1
>>> a
0
>>> b
[]
>>> c
1

# 嵌套解包

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

接下来实战一下,假如一个字符串 'ABCDEFGH',要输出下列格式:

A ['B', 'C', 'D', 'E', 'F', 'G', 'H']
B ['C', 'D', 'E', 'F', 'G', 'H']
C ['D', 'E', 'F', 'G', 'H']
D ['E', 'F', 'G', 'H']
E ['F', 'G', 'H']
F ['G', 'H']
G ['H']
H []

即每次取出第一个作为首,然后的字符串拆成列表,放置在后面

一般的处理过程是:

1. 将切片中索引为 0 的字符赋值给 a

2. 将切片中索引为 1 之后字符再赋值给 s

3. 用 list 函数将字符串转变为列表

4. 用 while 循环来 s 来判断,为空,则退出循环

>>> s = 'ABCDEFGH'
>>> while s:
...     x, s = s[0], list(s[1:])
...     print(x, s)
... 
A ['B', 'C', 'D', 'E', 'F', 'G', 'H']
B ['C', 'D', 'E', 'F', 'G', 'H']
C ['D', 'E', 'F', 'G', 'H']
D ['E', 'F', 'G', 'H']
E ['F', 'G', 'H']
F ['G', 'H']
G ['H']
H []

上面的处理,可以用序列解包的方法会来处理。序列解包,在赋值时无疑更方便、更简洁、更好理解、适用性更强!

运用序列解包的功能重写上面的代码:

>>> s = 'ABCDEFGH'
>>> while s:
...     x, *s = s
...     print(x, s)
... 
A ['B', 'C', 'D', 'E', 'F', 'G', 'H']
B ['C', 'D', 'E', 'F', 'G', 'H']
C ['D', 'E', 'F', 'G', 'H']
D ['E', 'F', 'G', 'H']
E ['F', 'G', 'H']
F ['G', 'H']
G ['H']
H []

--结束END--

本文标题: Python3 序列解包

本文链接: https://lsjlt.com/news/187174.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3 序列解包
    Python 中有很多很实用的语法糖,这些语法糖可以帮助我们简化代码、更易理解等优点,接下里再看一个 Python3 中特别实用的语法序列解包(序列解包是 Python 3.0 之后才有的语法)。那什么是序列解包呢?先看一个例子:>...
    99+
    2023-01-31
    序列
  • Python3程序打包
    使用cxfreeze将python3源码打包成为应用程序。1、下载最新4.3.4cxfreeze.whl后,修改后缀为.zip。2、提取其中3个子文件夹3、安装cx_Freeze-4.3.3.win-amd64-py3.4.msi程序4、将...
    99+
    2023-01-31
    程序
  • python3学习之序列化
    其他-->字符串,叫序列化字符串-->其他,叫反序列化有两个模块:json   可以处理python基本数据类型,字典,列表,元组,保存的文件是“明文的”pickle 可以处理python全部数据类型,专用于python,保存的...
    99+
    2023-01-31
    序列化
  • python如何实现序列解包
    这篇文章给大家分享的是有关python如何实现序列解包的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。序列解包我们定义一个变量,存储名字的名和姓,如果我们想要单独提取他们的姓和名,并存入不同变量,我们最简单的办法就...
    99+
    2023-06-27
  • python3--序列化模块,hashlib模块
    内置方法(回顾)__len__    len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__   hash(obj)的结果依赖于obj.__hash__()的结果,计算对象...
    99+
    2023-01-30
    模块 序列化 hashlib
  • Python3 系列之 环境包管理神器
    环境说明:Windows 10 build 17763 + Python 3.7.2 介绍 pipenv 是在 pip 与 virtualenv 基础上发展而来的,弥补了之前 virtualenv 通过 requirements.tx...
    99+
    2023-01-30
    神器 环境 系列之
  • Python3 列表
    1.列表的基本操作 列表的切分和字符串基本一样,但是列表在切分时,只要输入了’:’,不管结果有几个元素,都会返回一个列表. a=['a','b','c','d'] print(a[1]) #b print(a[1:2]) #...
    99+
    2023-01-30
    列表
  • python3-列表
    del如下。pop弹出元素并返回。 print(x) [1, 2, 5, 6, 8, 4, 3, 5] del x[3] print(x) [1, 2, 5, 8, 4, 3, 5] y=x.pop() print(y) 5 x pr...
    99+
    2023-01-31
    列表
  • python3 闭包
    1. 函数引用def test1(): print("--- in test1 func----") #调用函数 test1() #引用函数 ret = test1 print(id(ret)) print(id(test1...
    99+
    2023-01-31
  • python3-列表增删改查合并排序
    # Auther: Aaron Fannames = ["aaron", "alex", "james", "meihengfan"]names2 = [1,2,3,4,5]print(names)#查#print(names)      ...
    99+
    2023-01-31
    列表
  • python3 adb 获取设备序列号的实现
    python3 adb 获取设备序列号 import subprocess def deal_cmd(cmd): pi = subprocess.Popen(cmd, shel...
    99+
    2024-04-02
  • 如何进行Python序列进行解包教程
    如何进行Python序列进行解包教程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python序列具有很广泛的应用范围,在实际的应用中还是有不少的问题需要我们大...
    99+
    2023-06-17
  • windows、linux下打包Python3程序详细方法
    最近项目中需要python的打包,看到网上也没有很详细的资料,于是做了一些示例程序。研究了一下,Python如何在Windows和linux上打包 背景 Python版本:3.6. Windows版本:Windows ...
    99+
    2022-06-04
    windows打包Python3程序详细方法 linux下打包Python3程序详细方法
  • python 序列解包的多种形式及用法解析
    序列解包(Sequence Unpacking) 是Python中非常重要和常用的一个功能,可以使用非常简洁的形式完成复杂的功能,大幅度提高了代码的可读性,减少了程序员的代码输入量。 例如,可以使用序列解包功能对多个...
    99+
    2022-06-02
    python 序列解包
  • Python3笔记:列表方法详解
    user = [] user = list() # 将字符串转成列表 >>> list('abcde') ['a', 'b', 'c', 'd', 'e'] # 将元祖转成列表 >>> list(...
    99+
    2023-01-31
    详解 笔记 方法
  • Python3基础系列-程序模板及代码本
    横看成岭侧成峰,远近高低各不同。但是,程序的设计核心思想却是很简单,简单理解就是有一个输入,对输入的处理环节,最后得出一个输出。这个过程中的设计及其实现却是各不相同。本节的主要内容如下: 程序设计简单框架及模板 代码的本质 构成代...
    99+
    2023-01-30
    模板 代码 基础
  • python3-排序
    排序 >>> z=[11,34,-12,9,8534,12,434] >>> z.sort() >>> z [-12, 9, 11, 12, 34, 434, 8534] sort() ...
    99+
    2023-01-31
  • python3之list列表
                                        list的用法(列表)1.list函数可以把字符串切割成listIn [2]: arr = list('python') In [3]: arr Out[3]: ['p...
    99+
    2023-01-31
    列表 list
  • python3打包脚本
    安装pip python3版本默认没有安装pip。复制get-pip.py的内容:https://bootstrap.pypa.io/get-pip.py在python环境下运行。 C:\python36>python.exe ge...
    99+
    2023-01-31
    脚本
  • Python3之模块、包
    一、模块 1.模块的导入方式 import random,time #导入多个模块 #使用,如:random.randint(1,10) #使用,如:time.sleep(1) from random import randin...
    99+
    2023-01-31
    模块
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作