2010-11-22 4 views
2

Quelle est la façon la plus élégante de faire quelque chose comme ceci:Python « carte ou » sur les éléments dans la liste

>>> tests = [false, false, false] 
>>> map_or(test) 
false 

>>> tests = [true, false, false] 
>>> map_or(test) 
true 

La fonction map_or doit retourner true si un ou plusieurs des éléments de la liste sont vraies.

+2

serait-ce pas ' plier ou'? – delnan

+0

@delnan en effet, wiki sur ce fut éclairant. python 'réduire (fonction, itérable [, initialisateur])' est une façon plus générale de faire ce que je demande. tnx pour ce commentaire! – frnhr

Répondre

9

Utilisez any(). C'est une fonction intégrée qui fait juste ce que vous voulez.

+4

Documenté à l'adresse http://docs.python.org/library/functions.html#any. Devrait également se familiariser avec 'all()'. –

+0

Un autre exemple intéressant de biais de vote: bien que les trois réponses à cette question soient exactement identiques, celle-ci a été votée en premier, donc elle s'est retrouvée avec un score extrêmement disproportionné pour le reste. –

+0

@Glen Maynard: Eh bien, en fait, il a également été posté en premier, mais seulement de quelques secondes. Mais je vais vous donner un vote :) –

4
any(tests) 

(et le reste de ce rembourrage est encore une fois parce que StackOverflow traite les utilisateurs comme des idiots et définit des longueurs minimum de réponse)

+0

En effet. [remplissage] –

5
any(tests) 

fonction intégrée :)

Questions connexes