Python's lambda with underscore for an argument?

lambda, python

Solution

The `_` is variable name. Try it. (This variable name is usually a name for an ignored variable. A placeholder so to speak.)

Python:

>>> l = lambda _: True
>>> l()
<lambda>() missing 1 required positional argument: '_'

>>> l("foo")
True

So this lambda does require one argument. If you want a lambda with no argument that always returns `True`, do this:

>>> m = lambda: True
>>> m()
True

Problem

What does the following code do? ``` a = lambda _:True ``` From what I read and tested in the interactive prompt, it seems to be a function that returns always `True`. Am I understanding this correctly? I hope to understand why an underscore (`_`) was used as well.

Original source

Related problems