78

我在两台 PC 上运行 Eclipse SDK v3.6 和 PyDev v2.6 插件,Linux 和 Windows。

我想传递一个元组作为参数,例如:

foo = lambda (x,y): (y,x)
print (foo((1,2)))

这适用于 Linux 并给出正确的结果:

> (2,1)

在 Windows 上会出现错误:

foo = lambda (x,y): (y,x)
             ^
SyntaxError: invalid syntax

如何解决问题?

4

1 回答 1

155

您可能在 Windows 上运行 Python 3.x,在 Linux 上运行 Python 2.x。Python 3 中删除了解包元组参数的功能:请参阅PEP 3113

您可以手动解压缩元组,这适用于 Python 2.x 和 3.x:

foo = lambda xy: (xy[1],xy[0])

或者:

def foo(xy):
    x,y = xy
    return (y,x)
于 2012-07-04T11:43:32.017 回答