Je sais que
all(map(compare,new_subjects.values()))==True
me dirait si chaque élément de la liste est vrai. Cependant, comment puis-je savoir si chaque élément, sauf l'un d'entre eux, est vrai ?
Je sais que
all(map(compare,new_subjects.values()))==True
me dirait si chaque élément de la liste est vrai. Cependant, comment puis-je savoir si chaque élément, sauf l'un d'entre eux, est vrai ?
Si vous voulez dire que c'est en fait True
et ne s'évalue pas à True, vous pouvez juste les compter ?
>>> L1 = [True]*5
>>> L1
[True, True, True, True, True]
>>> L2 = [True]*5 + [False]*2
>>> L2
[True, True, True, True, True, False, False]
>>> L1.count(False)
0
>>> L2.count(False)
2
>>>
la vérification d'un seul Faux :
>>> def there_can_be_only_one(L):
... return L.count(False) == 1
...
>>> there_can_be_only_one(L1)
False
>>> there_can_be_only_one(L2)
False
>>> L3 = [ True, True, False ]
>>> there_can_be_only_one(L3)
True
>>>
éditer : Cela répond mieux à votre question :
>>> def there_must_be_only_one(L):
... return L.count(True) == len(L)-1
...
>>> there_must_be_only_one(L3)
True
>>> there_must_be_only_one(L2)
False
>>> there_must_be_only_one(L1)
False
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.