On 8/1/14 8:45 AM, Alex van der Spek wrote:
With a dict like so:

cond = {'a': 1, 'b': 1, 'c': 1,
         'A': 0, 'B', 0, 'C':0}

how would you make a boolean expression like this:

bool = (('a' == 1) & ('A' == 0) |
         ('b' == 1) & ('B' == 0) |
         ('c' == 1) & ('C' == 0))

The fact that lowercase and uppercase keys are stringed together with & is
intentional albeit the actual condition is a bit more tricky.

I've tried several approaches using eval() on a string built from the dict
but landed with just spelling it out literally.


Any pointers welcome.
Alex


Are you looking for this?

    bool = (
        (cond['a'] == 1 and cond['A'] == 0) or
        (cond['b'] == 1 and cond['B'] == 0) or
        (cond['c'] == 1 and cond['C'] == 0)
    )

If so, what's wrong with that expression exactly? I'm not sure how eval could enter into it, so I feel like I'm missing something.

--
Ned Batchelder, http://nedbatchelder.com

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

Reply via email to