我想知道,=
或, =
在python中意味着什么?
来自matplotlib的例子:
plot1, = ax01.plot(t,yp1,'b-')
答案 0 :(得分:43)
这是一种元组拆包的形式。括号:
(plot1,) = ax01.plot(t,yp1,'b-')
ax01.plot()
返回包含一个元素的元组,并将此元素分配给plot1
。如果没有逗号(可能是括号),plot1
将被赋予整个元组。请注意以下示例中a
和b
之间的区别:
>>> def foo():
... return (1,)
...
>>> (a,) = foo()
>>> b = foo()
>>> a
1
>>> b
(1,)
您可以在(a,)
和(1,)
中省略括号,为了清楚起见,我将它们留下了。
答案 1 :(得分:17)
Python允许您将元组放在赋值的左侧。 问题中的代码就是一个例子,它可能看起来像是一个运算符的特例,但它实际上只是一个案例元组赋值。一些例子可能有所帮助:
a, b = (1, 2)
为您提供a = 1
和b = 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-')
运算符)。