[issue41591] Comprehensions documentation
New submission from Walid Taha : 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 <https://bugs.python.org/issue41591> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41591] Comprehensions documentation
Walid Taha added the comment: Thank you, and good point, Vedran. That takes care of the example that I gave. What remains is the source of confusion, namely, the reference to the "previous section". With a quick search I was not able to find what this was referring to (other than the one that you correctly pointed out is not nested). Can you point me to that reference? -- ___ Python tracker <https://bugs.python.org/issue41591> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41591] Comprehensions documentation
Walid Taha added the comment: That makes perfect sense now, and I see what threw me off. Basically, there were not enough cues for me to see that there was an extra pair of square brackets in the example that had nested listcomps, and as a result, I assumed that a nested listcomp simply meant one with multiple for clauses in it (which you clarified is not considered a nested listcomp). If I may make a suggestion, the phrase "the nested listcomp is evaluated" would not have confused me if it simply said "the main part of the outer listcomp is evaluated". This can help in two ways. First, it avoids the possible confusion that the discussion in the previous section was about nested listcomp (which you rightly point out it is not). Second, adding the word "outer" gives an additional cue that we actually have two nested listcomps here. Thank you very much for your quick response and help with this issue! -- ___ Python tracker <https://bugs.python.org/issue41591> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com