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