Python 3.x 列表的多重赋值:这个简单代码背后的目的和概念是什么?

Python 3.x 列表的多重赋值:这个简单代码背后的目的和概念是什么?,python-3.x,Python 3.x,首先,提前感谢您的帮助。我是编写Python代码的新手,目前正在使用《用Python自动化无聊的东西》一书学习Python,我有一个关于多重赋值的概念性问题。 这本书解释说: '您可以键入这行代码: >>> cat = ['fat', 'orange', 'loud'] >>> size, color, disposition = cat " 但我不确定这次多重任务的目的 最初,我认为可以在赋值后调用字符串值。 例如: >>> t = [

首先,提前感谢您的帮助。我是编写Python代码的新手,目前正在使用《用Python自动化无聊的东西》一书学习Python,我有一个关于多重赋值的概念性问题。

这本书解释说: '您可以键入这行代码:

>>> cat = ['fat', 'orange', 'loud']
>>> size, color, disposition = cat
" 但我不确定这次多重任务的目的

最初,我认为可以在赋值后调用字符串值。 例如:

>>> t = [1, 'two', 3.0]
>>> x, y, z = t
>>> t
[1, 'two', 3.0]
>>> x
1
>>> y
'two'
>>> z
3.0
猫['size']

但它只返回“TypeError”,因为我只能使用我能理解的索引

>>> cat = ['fat', 'orange', 'loud']
>>> size, color, disposition = cat
那么,这个列表多重赋值的目的是什么?作业结束后如何使用


对不起,我的问题不清楚。(一周前才开始Python和编码…)感谢您的时间

您正在分配变量
size='fat'
color='orange'
等等。

您正在这样做(见最后一段):

x、 y,z=t

这被称为顺序解包(sequenceunpacking),并适用于右侧的任何顺序。序列解包要求左侧的变量列表具有与序列长度相同的元素数。请注意,多重赋值实际上只是元组打包和序列解包的组合

例如:

>>> t = [1, 'two', 3.0]
>>> x, y, z = t
>>> t
[1, 'two', 3.0]
>>> x
1
>>> y
'two'
>>> z
3.0

我认为docs的最后一句话有点误导性——它谈论了一些其他的概念,在这个例子中,没有元组打包,因为它已经打包了。