On 10/28/2010 9:23 AM, John Posner wrote:
On 10/28/2010 12:16 PM, cbr...@cbrownsystems.com wrote:
It's clear but tedious to write:

if 'monday" in days_off or "tuesday" in days_off:
doSomething

I currently am tending to write:

if any([d for d in ['monday', 'tuesday'] if d in days_off]):
doSomething

Is there a better pythonic idiom for this situation?


Clunky, but it might prompt you to think of a better idea: convert the
lists to sets, and take their intersection.

-John

   d1 = set('monday','tuesday')
   days_off = set('saturday','sunday')

   if not d1.isdisjoint(days_off) :
        ...

This is cheaper than intersection, since it doesn't have to allocate and construct a set. It just tests whether any element in the smaller of the two sets is in the larger one.

                                        John Nagle

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to