1. ホーム
  2. python

Pythonのラムダがタプルの引数を受け付けない [重複] [重複

2023-09-10 17:48:36

質問

LinuxとWindowsの2台のPCでEclipse SDK v3.6とPyDev v2.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 3113 .

代わりに手動でタプルを展開することができ、これは Python 2.x と 3.x の両方で動作するでしょう。

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

または

def foo(xy):
    x,y = xy
    return (y,x)