60 votes

Quelle est la manière la plus « pythonique » de combiner logiquement une liste de booléens ?

J'ai une liste de booléens que j'aimerais combiner logiquement en utilisant et/ou. Les opérations élargies seraient :

 vals = [True, False, True, True, True, False]

# And-ing them together
result = True
for item in vals:
    result = result and item

# Or-ing them together
result = False
for item in vals:
    result = result or item

Existe-t-il des lignes simples pour chacun des éléments ci-dessus ?

16voto

Jerub Points 17488

La meilleure façon de le faire est d'utiliser les fonctions any() et all() .

 vals = [True, False, True, True, True]
if any(vals):
   print "any() reckons there's something true in the list."
if all(vals):
   print "all() reckons there's no non-True values in the list."
if any(x % 4 for x in range(100)):
   print "One of the numbers between 0 and 99 is divisible by 4."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X