在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]=…
。