python序列化图解(对Python3 序列解包详解)
类别:脚本大全 浏览量:1509
时间:2022-03-28 01:43:26 python序列化图解
对Python3 序列解包详解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 序列解包详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/yilovexing/article/details/80576788
您可能感兴趣
- django条件序列化(Django之无名分组和有名分组的实现)
- react组件分析(react-diagram 序列化Json解读案例分析)
- dedecms简短标题(dedecms文章列表实现序列号排序效果实现代码)
- python随机生成时间戳(python时间序列按频率生成日期的方法)
- python时间序列模式识别(Python时间序列处理之ARIMA模型的使用讲解)
- python序列化图解(对Python3 序列解包详解)
- python3json序列化(Python3.5 Json与pickle实现数据序列化与反序列化操作示例)
- C# xml和对象的序列化与反序列化
- JavaScriptSerializer对Json对象的序列化和反序列化
- mysql自增长语句(mysql实现自增序列的示例代码)
- sqlserver序列可以自定义(sql server 自定义分割月功能详解及实现代码)
- python序列定义(详解Python3序列赋值、序列解包)
- ASP.NET使用JavaScriptSerializer实现序列化与反序列化
- C#中Serializable序列化
- python中生成字符串序列(python实现字符串加密 生成唯一固定长度字符串)
- python实现层次遍历二叉树(Python实现的序列化和反序列化二叉树算法示例)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
- TVB新剧《黯夜守护者》将播,陈展鹏陈炜首次合作探讨人性(TVB新剧黯夜守护者将播)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
- 艺人吴卓羲10年警察生涯,演足10年阿Sir,系咩玩法(艺人吴卓羲10年警察生涯)
热门推荐
- docker 查看当前镜像(Docker 查看镜像信息的方法)
- php获取网页内容的几种方法(PHP实现的文件浏览器功能简单示例)
- 阿里云服务器购买时考虑的因素(购买阿里云服务器后的基本安全配置)
- sql常见的聚合函数有哪些(SQL中的开窗函数详解可代替聚合函数使用)
- linux怎么搭建nfs(通过案例深入解析linux NFS机制)
- mysqlgroupby用法(MySQL Group by的优化详解)
- python 怎么解析中文(Python中一般处理中文的几种方法)
- css怎么设计文字阴影(css实现动态阴影、蚀刻文本、渐变文本效果)
- hbuilderx怎么创建web项目(HBuilder如何设置web服务器)
- dedecms怎么调用标签(dedecms日期调用详细说明)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9