2010-05-10 4 views
7

Für den folgenden Python-Wörterbuch:Wie können die booleschen Werte eines Python-Wörterbuchs am besten zusammengeführt werden?

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

Ich mag die Boolesche Werte oben in den folgenden Booleschen Ausdruck aggregieren:

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

Die oben sollte ich False zurück. Ich verwende Schlüssel mit bekannten Namen oben, aber ich möchte, dass es funktioniert, so dass es eine große Anzahl von unbekannten Schlüsselnamen geben kann.

+1

Eine * unendliche * Anzahl der Schlüssel ?! –

+0

@Mark Byers: Er weiß nicht, wie viele Schlüssel im Diktat sein werden oder was sie sein werden, warum ist das schwer zu verstehen? – manifest

+2

@manifest: OK, dann war seine Frage falsch, also habe ich es bearbeitet, um es zu korrigieren. Dies ist ein Wiki und öffentlich sichtbar. Die richtige Frage ist genauso wichtig wie die richtige Antwort. –

Antwort

23

in Python 2.5+:

all(dict.itervalues()) 

in Python 3+

all(dict.values()) 

dict ist ein schlechter Variablenname, aber, weil es der Name eines eingebauten Typs ist

bearbeiten : Fügen Sie die Syntax für die Python 3-Version hinzu. values() erstellt eine Ansicht in Python 3, im Gegensatz zu 2.x, wo sie die Liste im Speicher aufbaut.

+0

+1 - Iterator ist besser für den Speicherverbrauch –

Verwandte Themen