gpt4 book ai didi

对Python3 序列解包详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章对Python3 序列解包详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

?
1
2
3
4
5
6
7
8
>>> a, b, c = 1 , 2 , 3
>>> a
1
>>> b
2
>>> c
3
>>>

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

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

* 获取的值默认为 list 。

# 获取剩余部分:

?
1
2
3
4
5
6
7
>>> a, b, * c = 0 , 1 , 2 , 3
>>> a
0
>>> b
1
>>> c
[ 2 , 3 ]

# 获取中间部分:

?
1
2
3
4
5
6
7
>>> a, * b, c = 0 , 1 , 2 , 3
>>> a
0
>>> b
[ 1 , 2 ]
>>> c
3

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> a, b, * c = 0 , 1
>>> a
0
>>> b
1
>>> c
[]
>>> a, * b, c = 0 , 1
>>> a
0
>>> b
[]
>>> c
1

# 嵌套解包 。

?
1
2
3
4
5
6
7
8
9
10
11
>>> (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',要输出下列格式

?
1
2
3
4
5
6
7
8
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 来判断,为空,则退出循环 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> 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 []

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> 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 。

最后此篇关于对Python3 序列解包详解的文章就讲到这里了,如果你想了解更多关于对Python3 序列解包详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com