Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

line, = plot(x,sin(x)) what does comma stand for?

I'm trying to make an animated plot. Here is an example code:

from pylab import *
import time

ion()

tstart = time.time()               # for profiling
x = arange(0,2*pi,0.01)            # x-array
line, = plot(x,sin(x))
for i in arange(1,200):
    line.set_ydata(sin(x+i/10.0))  # update the data
    draw()                         # redraw the canvas

print 'FPS:' , 200/(time.time()-tstart)

I don't understand the line,. Without comma, the code doesn't work.

like image 753
enedene Avatar asked May 02 '12 22:05

enedene


1 Answers

The comma is Python syntax that denotes either a single-element tuple. E.g.,

>>> tuple([1])
(1,)

In this case, it is used for argument unpacking: plot returns a single-element list, which is unpacked into line:

>>> x, y = [1, 2]
>>> x
1
>>> y
2
>>> z, = [3]
>>> z
3

An alternative, perhaps more readable way of doing this is to use list-like syntax:

>>> [z] = [4]
>>> z
4

though the z, = is more common in Python code.

like image 143
Fred Foo Avatar answered Sep 21 '22 18:09

Fred Foo