Je suis intéressé par la valeur de vérité de Python définit comme {'a', 'b'}
, ou l'ensemble vide set()
(ce qui n'est pas le même que le dictionnaire vide {}
). En particulier, je voudrais savoir si bool(my_set)
est False
si et seulement si l'ensemble my_set
est vide.
Ignorant primitive (comme les chiffres) ainsi que les types définis par l'utilisateur, https://docs.python.org/3/library/stdtypes.html#truth dit:
Les valeurs suivantes sont considérées comme fausses:
- [...]
- toute séquence vide, par exemple,
''
,()
,[]
.- tout vide de cartographie, par exemple,
{}
.- [...]
Toutes les autres valeurs sont considérées comme de vraies
Selon https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-rangeun ensemble n'est pas une séquence (il n'est pas ordonné, ses éléments n'ont pas d'indices, etc.):
Il existe trois principaux types de séquences: les listes, les tuples, et la gamme des objets.
Et, selon https://docs.python.org/3/library/stdtypes.html#mapping-types-dict,
Il n'y a actuellement qu'une seule norme de cartographie type, le dictionnaire.
Donc, comme je le comprends, le type de jeu n'est pas un type qui ne peut jamais être False
. Cependant, lorsque j'essaie, bool(set())
évalue False
.
Questions:
- Est-ce une documentation problème, ou suis-je quelque chose de mal?
- Est l'ensemble vide, le seul jeu dont la valeur de vérité est -
False
?