comprehension parsing

MRAB python at mrabarnett.plus.com
Sat Nov 5 18:11:38 EDT 2022


On 2022-11-05 18:52, cactus wrote:
> On Saturday, 5 November 2022 at 16:06:52 UTC, cactus wrote:
> 
> I should have quoted the full comprehensions:
> 
>   all((srt(m, n) in c_np) == (srt(a, b) in c_ap)  for (m, a), (n, b) in combinations(na8, 2))
>   all( srt(m, n) in c_np  ==  srt(a, b) in c_ap)  for (m, a), (n, b) in combinations(na8, 2))

The comparison operators can be chained, so:

     a == b == c

is equivalent to:

     (a == b) and (b == c)

except that the common term ('b' in this case) is evaluated only once.

'in' is one of those comparison operators, so:

      srt(m, n) in c_np == srt(a, b) in c_ap

is equivalent to:

      (srt(m, n) in c_np) and (c_np == srt(a, b)) and (srt(a, b) in c_ap)

except that the common terms ('c_np' and 'srt(a, b)') are evaluated only 
once.

Chaining makes most sense with multiple '==' or a series of '<' and/or 
'<=' or a series of '>' and/or '>=', as in '1 <= n <= 10'.


More information about the Python-list mailing list