Odd truth result with in and ==
On 11/21/18 6:45 PM, Ian Kelly wrote:
> On Wed, Nov 21, 2018 at 2:53 PM Serhiy Storchaka
<storchaka at gmail.com> wrote:
>> 21.11.18 22:17, Cameron Simpson ????:
>>> Can someone show me a real world, or failing that - sane looking,
>>> chained comparison using "in"?
>> s == s[-1] in '\'"'
>> Tests that string s starts and ends with a single or double quote.
> Clever, but too esoteric to use in practice. I'd rather make the
> chaining explicit.
>> It can be also used with sets:
>> elem in set1 <= set2
> I like this one better.
LOL: I had exactly the opposite reaction.
The first one expresses exactly the idea that the first and last
elements of the string match and are quotation characters, as if I'd
(s == s[-1]) and (s in '\'"')
(Arguably too esoteric to be used in practice, *unless* profiling
indicates a necessary (before) and noticable (after) speed improvement.)
But the second one has to do an expensive subset operation. If I think
"is elem in both sets," then I'd never write:
(elem in set1) and (set1 <= set2)