Python入门教程第33篇 列表解包
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第33篇 列表解包相关的知识,希望对你有一定的参考价值。
本篇我们学习如何对列表进行解包(unpack)操作。
列表解包
以下代码定义了一个字符串列表:
colors = ['red', 'blue', 'green']
如果想要把列表的三个元素值赋予不同的变量,可以使用以下方法分别进行赋值:
red = colors[0]
blue = colors[1]
green = colors[2]
不过,Python 为此提供了一个更好的方法,称为序列解包(sequence unpacking)。解包的基于语法可以用于将列表或者元组的元素值赋予多个变量。例如:
red, blue, green = colors
以上语句可以将 colors 列表的三个元素分布赋予变量 red、blue 以及 green。
示例中,左侧变量的数量和右侧列表中元素的数量相同。如果左侧变量的数量少于或者多于列表中元素的数量,将会返回错误。例如:
colors = ['red', 'blue', 'green']
red, blue = colors
ValueError: too many values to unpack (expected 2)
在这种情况下,Python 无法将三个元素拆解到两个变量中。
解包与打包
如果我们只想解包列表左侧的部分元素,不关心其他元素,可以采用以下方法:
- 首先,解包所需的元素到变量中。
- 其次,将其他元素打包成一个新的列表并赋予另一个变量。
在变量名前增加一个星号(*)可以将剩余的元素打包成一个列表并赋予该变量。例如:
colors = ['red', 'blue', 'green']
red, blue, *other = colors
print(red)
print(blue)
print(other)
输出结果如下:
red
blue
['green']
以上示例将 colors 列表的第一个和第二个元素赋予变量 red 和 blue,同时将最后一个元素赋予变量 other。
再看一个示例:
colors = ['cyan', 'magenta', 'yellow', 'black']
cyan, magenta, *other = colors
print(cyan)
print(magenta)
print(other)
输出结果如下:
cyan
magenta
['yellow', 'black']
以上示例将列表的前两个元素赋予了两个变量,同时将后两个元素打包成一个新的列表赋予 other 变量。
总结
- 列表解包用于将列表的元素赋予多个变量。
- 在变量前使用星号(*)可以将列表中剩余的变量打包成一个新的列表。
以上是关于Python入门教程第33篇 列表解包的主要内容,如果未能解决你的问题,请参考以下文章