Python3 序列解包

Python3 序列解包,第1张

概述Python 中有很多很实用的语法糖,这些语法糖可以帮助我们简化代码、更易理解等优点,接下里再看一个 Python3 中特别实用的语法序列解包(序列解包是 Python 3.0 之后出现)。那什么是序列解包呢?先看一个例子:>>> a, b, c = 1, 2, 3>>> a1>>> b2>>> c3>&g

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

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

>>> a,b,c = 1,2,3>>> a1>>> b2>>> c3>>> 

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

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

* 获取的值默认为 List

# 获取剩余部分:

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

# 获取中间部分:

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

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

>>> a,1>>> a0>>> b1>>> c[]
>>> a,1>>> a0>>> b[]>>> c1

# 嵌套解包

>>> (a,b),(c,d) = (1,2),(3,4)>>> a1>>> b2>>> c3>>> d4>>> a,c,d(1,3,4)

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

A ['B','C','D','E','F','G','H']B ['C','H']C ['D','H']D ['E','H']E ['F','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','H']G ['H']H []

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

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

>>> s = 'ABCDEFGH'>>> while s:...     x,*s = s...     print(x,'H']G ['H']H []

总结

以上是内存溢出为你收集整理的Python3 序列解包全部内容,希望文章能够帮你解决Python3 序列解包所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1189718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存