I am running Eclipse SDK v3.6 with PyDev v2.6 plugin on two PC, with Linux and Windows.
I would like to pass a tuple as an argument, like:
foo = lambda (x,y): (y,x) print (foo((1,2)))
This works on Linux and gives the correct result:
On Windows it rises an error:
foo = lambda (x,y): (y,x) ^ SyntaxError: invalid syntax
How to solve the problem?
You are probably running Python 3.x on Windows, and Python 2.x on Linux. The ability to unpack tuple parameters was removed in Python 3: See PEP 3113.
You can manually unpack the tuple instead, which would work on both Python 2.x and 3.x:
foo = lambda xy: (xy,xy)
def foo(xy): x,y = xy return (y,x)