New submission from Walid Taha <wt...@fb.com>:

The documentation for list comprehensions contains the following phrase:

"As we saw in the previous section, the nested listcomp is evaluated in the 
context of the for that follows it, so this example is equivalent to:"

This should be corrected, as it currently contradicts what was said previously, 
which is that list comprehensions and the conditional they contain are scoped 
in the same order as they appear (rather than the reverse).

This issue can be found on this page: 
https://docs.python.org/3/tutorial/datastructures.html

It also seems to appear in the most recent version:
https://docs.python.org/3.10/tutorial/datastructures.html

To confirm that the first (and not the second statement) is correct, you may 
consider the following code:

l=[]
for x in range(0,3):
  for y in range (0,x+1):
    l.append((x,y))
print(l)

l=[(x,y) for x in range (0,3) for y in range (0,x+1)]
print(l)

Which run on 3.7.5 produces the following output

[(0, 0), (1, 0), (1, 1), (2, 0), (2, 1), (2, 2)]
[(0, 0), (1, 0), (1, 1), (2, 0), (2, 1), (2, 2)]

----------
assignee: docs@python
components: Documentation
messages: 375665
nosy: docs@python, wtaha
priority: normal
severity: normal
status: open
title: Comprehensions documentation
versions: Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41591>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to