tags:

views:

103

answers:

1

For the following Python dictionary:

dict = {
    'stackoverflow': True,
    'superuser': False,
    'serverfault': False,
    'meta': True,
}

I want to aggregate the boolean values above into the following boolean expression:

dict['stackoverflow'] and dict['superuser'] and dict['serverfault'] and dict['meta']

The above should return me False. I'm using keys with known names above but I want it to work so that there can be a large number of unknown key names.

+19  A: 

in python 2.5+:

all(dict.itervalues())

in python 3+

all(dict.values())

dict is a bad variable name, though, because it is the name of a builtin type

Edit: add syntax for python 3 version. values() constructs a view in python 3, unlike 2.x where it builds the list in memory.

LeMiz
+1 - iterator is better for memory consumption
Yuval A