0
votes

Vérifier les faux comme toute valeur dans un dictionnaire

J'ai la dicte suivante: xxx

i Mettez-le à la mise à jour sur vrai quand quelque chose se passe et le déclenche. Ce que j'aimerais pouvoir faire, cependant, vérifie si tout des valeurs de la dicte retourne false (et s'ils retournent Faux pour que l'une des valeurs ne soit une chose, et sinon , fais quelque chose d'autre).

Alors ... Comment irai-je à ce sujet? Serait bien si je pouvais le faire dans une vérification d'une ligne, mais sinon, je peux contourner cela.

Note: Ceci est pour Python 2.7x


2 commentaires

"Vérifiez si n'importe quel des valeurs" - Avez-vous essayé d'utiliser tout (ou tout , car il s'agit d'une vérification négative)? Qu'est-ce que avez-vous essayé?


J'admets, je ne l'ai pas fait, parce que je n'y pensais pas du tout. Problème d'utilisation de mots simples tels que "tous" ou "tout", signifie qu'il est difficile de rechercher - j'açais d'essayer de chercher des réponses à ma question, mais seulement trouvé vaguement similaire, et des réponses trop compliquées.


4 Réponses :


0
votes

Vous pouvez utiliser Tous :

do something


0 commentaires

2
votes

Qu'en est-il de faire

>>> all({}.values()) # <=> all([])
True


1 commentaires

Merci, cela a parfaitement travaillé. J'ai un dict donné, qui ne sera jamais vide, et je ne changeai que de False à True, donc pas besoin de contrôles plus rigoureux. Il s'agit d'une dicte non mutable (en quelque sorte), dans un programme, donc si quelqu'un gâche cela, c'est parce qu'ils vont piquer dans le code source: c'est-à-dire mon problème.



1
votes

Vous ne pouvez pas simplement utiliser le tout intégré sur les valeurs du dictionnaire pour cela, car il retournera false s'il repousse toute falsy valeur tels que 0 , [] , {} , ...

démo: xxx

Nous avons besoin d'une étape de plus, vérifiant explicitement contre false .

Il n'y a pas de false : xxx < / pré>

Il y a au moins un false : xxx

(Vérification de true ou ou False avec est va bien car ces deux sont des singletons.)


0 commentaires

0
votes

Si vous êtes sûr que toutes les valeurs sont soit true ou false alors vous pouvez utiliser dans opérateur xxx


0 commentaires