classification
Title: Reserved word pair used in lambda tutorial without being noted as a reserved word
Type: Stage: resolved
Components: Documentation Versions: Python 3.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Chas Belov, docs@python, mark.dickinson
Priority: normal Keywords:

Created on 2020-05-16 06:57 by Chas Belov, last changed 2020-05-16 10:05 by mark.dickinson. This issue is now closed.

Messages (2)
msg369017 - (view) Author: Chas Belov (Chas Belov) * Date: 2020-05-16 06:57
In the tutorial for lambda expressions at https://docs.python.org/3.7/tutorial/controlflow.html#lambda-expressions the reserved word pair is introduced without noting that it is a reserved word. In the example given, I wasn't sure whether pair was a reserved word or whether the interpreter was parsing the plural "pairs" which is presumable an arbitrary name.

Actual content:

The above example uses a lambda expression to return a function. Another use is to pass a small function as an argument:

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

Candidate expected content:

The above example uses a lambda expression to return a function. Another use is to pass a small function as an argument, for example, the reserved word pair to designate the position in a tuple pair:

>>> items = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> items.sort(key=lambda pair: pair[1])
>>> items
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
msg369020 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2020-05-16 08:00
`pair` isn't a reserved word here; it's just the formal parameter name. Think of the lambda here as being equivalent to a function

    def second(pair):
        return pair[1]

You can replace the word "pair" here with any other valid Python identifier, and it'll still work the same way.
History
Date User Action Args
2020-05-16 10:05:13mark.dickinsonsetstatus: open -> closed
resolution: not a bug
stage: resolved
2020-05-16 08:00:01mark.dickinsonsetnosy: + mark.dickinson
messages: + msg369020
2020-05-16 06:57:50Chas Belovcreate