什么,=在python中意味着什么?

时间:2015-06-02 16:24:27

标签: python operators

我想知道,=, =在python中意味着什么?

来自matplotlib的例子:

plot1, = ax01.plot(t,yp1,'b-')

3 个答案:

答案 0 :(得分:43)

这是一种元组拆包的形式。括号:

(plot1,) = ax01.plot(t,yp1,'b-')

ax01.plot()返回包含一个元素的元组,并将此元素分配给plot1。如果没有逗号(可能是括号),plot1将被赋予整个元组。请注意以下示例中ab之间的区别:

>>> def foo():
...     return (1,)
... 
>>> (a,) = foo()
>>> b = foo()
>>> a
1
>>> b
(1,)

您可以在(a,)(1,)中省略括号,为了清楚起见,我将它们留下了。

答案 1 :(得分:17)

Python允许您将元组放在赋值的左侧。 问题中的代码就是一个例子,它可能看起来像是一个运算符的特例,但它实际上只是一个案例元组赋值。一些例子可能有所帮助:

a, b = (1, 2)

为您提供a = 1b = 2

现在还有一个元素元组的概念。

x = (3,)

给你x = (3,)这是一个带有一个元素的元组,语法看起来有点奇怪但是Python需要区别于普通的括号,所以它有这个尾随的逗号(例如z=(4)使z是整数值4,而不是元组)。如果您现在要提取该元素,那么您可能希望在问题中使用类似的东西:

y, = x

现在y是3.请注意,这只是元组赋值,语法只是有点奇怪,因为它是长度为1的元组。

请参阅此脚本以获取示例:http://ideone.com/qroNcx

答案 2 :(得分:2)

在变量之后添加,将其放在具有单个元素的元组中。然后为此元组分配一个从=返回的值(使用ax01.plot(t,yp1,'b-')运算符)。