python中的逗号运算符_Python代码。 它是逗号运算符吗?

Python代码。 它是逗号运算符吗?

我不明白什么逗号后面的variables行,意思是: http : //matplotlib.org/examples/animation/simple_anim.html

line, = ax.plot(x, np.sin(x))

如果我删除逗号和variables“行”,变成“行”variables,那么程序被破坏。 上面给出的URL的完整代码:

import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig = plt.figure() ax = fig.add_subplot(111) x = np.arange(0, 2*np.pi, 0.01) # x-array line, = ax.plot(x, np.sin(x)) def animate(i): line.set_ydata(np.sin(x+i/10.0)) # update the data return line, #Init only required for blitting to give a clean slate. def init(): line.set_ydata(np.ma.array(x, mask=True)) return line, ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init, interval=25, blit=True) plt.show()

根据http://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequencesvariables后面的逗号似乎与只包含一个元素的元组相关。

ax.plot()返回一个元素的元组 。 通过在赋值目标列表中添加逗号,可以让Python解开返回值,并依次将其分配给每个左侧命名的variables。

大多数情况下,你会发现这被应用于具有多个返回值的函数:

base, ext = os.path.splitext(filename)

但是,左侧可以包含任意数量的元素,并且提供它是一个元组或variables列表。

在Python中,逗号使逗号成为一个元组:

>>> 1 1 >>> 1, (1,)

圆括号在大多数地方是可选的。 您可以用括号重写原始代码而不改变含义:

(line,) = ax.plot(x, np.sin(x))

或者你也可以使用列表语法:

[line] = ax.plot(x, np.sin(x))

或者,您可以将其重新转换为不使用元组拆包的行:

line = ax.plot(x, np.sin(x))[0]

要么

lines = ax.plot(x, np.sin(x)) def animate(i): lines[0].set_ydata(np.sin(x+i/10.0)) # update the data return lines #Init only required for blitting to give a clean slate. def init(): lines[0].set_ydata(np.ma.array(x, mask=True)) return lines

有关分配如何工作的详细信息,请参阅分配说明文档。

如果你有

x, = y

你打开一个长度为1的列表或元组。 例如

x, = [1]

会导致x == 1 ,而

x = [1]

给x == [1]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值