This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: Argument unpacking syntax for lambdas
Type: Stage: resolved
Components: Interpreter Core Versions:
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, brett.cannon, danijar, xtreak, yselivanov
Priority: normal Keywords:

Created on 2018-08-05 16:37 by danijar, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (3)
msg323158 - (view) Author: danijar (danijar) Date: 2018-08-05 16:37
It would be great to support argument unpacking for lambdas. Example:

  lambda x, (y, z): x + y + z

instead of

  lambda x, y_and_z: x + y_and_z[0] + y_and_z[1]

Similar unpacking syntax is available for normal functions:

  def foo(x, y_and_z):
    y, z = y_and_z
    return x + y + z

This would greatly increase readability in some cases.
msg323163 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2018-08-05 17:22
I think this is an explicit decision to remove it in Python 3 unless I am mistaking the syntax you are referring to. Please refer : . A note on 2to3 to fix this :

➜  cpython git:(master) python2
Python 2.7.14 (default, Mar 12 2018, 13:54:56)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> (lambda x, (y, z): [x, y])(1, (2, 3))
[1, 2]
>>> (lambda x, (y, z): [x, y, z])(1, (2, 3))
[1, 2, 3]

➜  cpython git:(master) python3
Python 3.6.4 (default, Mar 12 2018, 13:42:53)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> (lambda x, (y, z): [x, y, z])(1, (2, 3))
  File "<stdin>", line 1
    (lambda x, (y, z): [x, y, z])(1, (2, 3))
SyntaxError: invalid syntax

msg323169 - (view) Author: danijar (danijar) Date: 2018-08-05 18:09
Thank you! Closing this.
Date User Action Args
2022-04-11 14:59:04adminsetgithub: 78520
2018-08-05 18:09:17danijarsetstatus: open -> closed
resolution: wont fix
messages: + msg323169

stage: resolved
2018-08-05 17:22:48xtreaksetnosy: + xtreak
messages: + msg323163
2018-08-05 16:37:04danijarcreate