LinuxとWindowsを搭載した2台のPCでPyDev v2.6プラグインを備えたEclipse SDK v3.6を実行しています。
(例)のように、タプルを引数として渡します:
foo = lambda (x,y): (y,x)
print (foo((1,2)))
これはLinuxで動作し、次のような結果になります。
(2,1)
Windowsではエラーが発生します。
foo = lambda (x,y): (y,x)
^
SyntaxError: invalid syntax
問題を解決するには?
おそらく、WindowsではPython 3.x、LinuxではPython 2.xを実行しています。タプルパラメータをアンパックする機能は、Python 3:削除されました PEP 311 を参照してください。
代わりに手動でタプルを解凍できます。これは、Python 2.xと3.xの両方で機能します。
foo = lambda xy: (xy[1],xy[0])
または:
def foo(xy):
x,y = xy
return (y,x)