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 []
以上这篇对Python3 序列解包详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]