78

LinuxとWindowsの2台のPCでPyDevv2.6プラグインを使用してEclipseSDKv3.6を実行しています。

次のように、引数としてタプルを渡したいと思います。

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ではPython2.xを実行しています。タプルパラメーターを解凍する機能は、Python3で削除されました。PEP3113を参照してください。

代わりに、手動でタプルを解凍できます。これは、Python2.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 に答える