,= 在 python 中是什么意思?

What does ,= mean in python?

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

来自 matplotlib 的示例:

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

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

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

ax01.plot() returns一个包含一个元素的元组,这个元素赋值给plot1。如果没有那个逗号(可能还有圆括号),plot1 将被分配给整个元组。观察以下示例中 ab 之间的区别:

>>> 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 = 1b = 2.

现在也有了单元元组的概念。

x = (3,)

给你 x = (3,) 这是一个只有一个元素的元组,语法看起来有点奇怪但是 Python 需要与普通括号区分开来所以它有尾随逗号(例如 z=(4) 使 z 成为整数值 4,而不是元组)。如果你现在想提取那个元素,那么你会想使用你在问题中的东西:

y, = x

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

示例见此脚本:http://ideone.com/qroNcx