在python中,=是什么意思?

在python中,=是什么意思?,python,operators,Python,Operators,我想知道,=或,=在python中是什么意思 matplotlib中的示例: plot1, = ax01.plot(t,yp1,'b-') 这是元组解包的一种形式。带括号: (plot1,) = ax01.plot(t,yp1,'b-') ax01.plot()返回包含一个元素的元组,该元素被分配给plot1。如果没有逗号(可能还有括号),plot1将被分配整个元组。观察以下示例中a和b之间的差异: >>> def foo(): ... return (1,) ..

我想知道
,=
,=
在python中是什么意思

matplotlib中的示例:

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

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

(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,)
中的括号,为了清晰起见,我保留了它们。

在变量后添加一个
,将其放置在一个具有单个元素的元组中。然后为该元组分配一个从
ax01返回的值(使用
=
运算符)。plot(t,yp1,'b-)
Python允许您将元组放在赋值的左侧。 问题中的代码就是一个例子,它看起来像是一个特殊的运算符,但实际上它只是一个实例元组赋值。一些例子可能会有所帮助:

a, b = (1, 2)
这将为您提供
a=1
b=2

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

x = (3,)
为您提供了
x=(3,)
这是一个包含一个元素的元组,语法看起来有点奇怪,但Python需要与普通括号区分开来,因此它的结尾有逗号(例如
z=(4)
使z成为整数值4,而不是元组)。如果您现在想要提取该元素,那么您需要使用与问题中类似的内容:

y, = x
现在
y
是3。注意,这里只是元组赋值,语法看起来有点奇怪,因为它是长度为1的元组


请参阅此脚本以获取示例:

这似乎是特定于版本的。确切地说,您可以提到这是不可能的,例如在Python2.7中(“ValueError:太多的值无法解包”)。另外:为什么我不能
x,,,=(1,2,3,4)
?@ThomasWeller 1)上面的例子在Python 2.7中工作,这个错误意味着您试图解包的元组大于lhs中提供的变量数量。2) 不能,因为它不是有效的语法。如果只想保留第一个元素,则执行
x,,,=(1,2,3,4)
,其中
\u
是常规变量名,通常用于表示“不关心此值”。无论如何,我猜
x=foo[0]
在这种情况下更清晰。@StefanoSanfilippo在python 3中你可以做@ArnabDatta No ya'cant;那将是一个2元组。不过,您可以编写
(plot1,)=…
[plot1]=…