On Wed, Nov 18, 2015 at 1:27 AM, Nicolas Évrard <ni...@altern.org> wrote:
> I saw just in time because in a review I wrote something like this:
>
>    if operator not in ('where', 'not where')
>
> and my colleague proposed that I should use a list instead of a tuple.
> But reading the mentioned tweet I tend to think that a set would be a
> better choice.
>
> What are your opinion on this issue (I realize it's not something of
> the utmost importance but rather a "philosophical" question).

Definitely a set. I don't know why it would be better to use a list;
there's no advantage here for the list. "x [not] in some_set"
accurately represents the concept of "any of these will match". With a
two-element list/tuple/set, I doubt there's going to be any
significant performance difference, but if anything, I would expect
the tuple to be the fastest (because it can be stored as a literal),
and the other two need to be built; but CPython's optimizer has me
beat there - they're all stored as literals (the list becomes a tuple,
the set becomes a frozenset), meaning there's basically no difference.
So you're free to use the one that expresses the concept of "is this
part of this set of strings", which is the set.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to