Comment créer un tuple d'un tuple vide en Python?
Comment puis-je créer un tuple composé uniquement d'un tuple vide, c'est à dire (())
? J'ai essayé tuple(tuple())
, tuple(tuple(tuple()))
, tuple([])
et tuple(tuple([]))
, qui tous m'ont donné ()
.
La raison pour laquelle j'utilise une telle chose est la suivante: supposons que vous avez des sacs n
avec des articles m
. Pour représenter une liste d'éléments dans un sac, j'utilise un tuple
de longueur n
, où chaque élément du tuple est un représentant pour un sac. Un sac peut être vide, qui est étiqueté par ()
. Maintenant, à un moment donné, j'ai juste un sac avec vide les éléments!
2 réponses
Le vide d'un n-uplet est ()
, et un tuple avec un seul élément (par exemple l'entier 1
), appelé un singleton (voir ici et ici) est (1,)
. Par conséquent, le tuple contenant uniquement le tuple vide est
((),)
Voici quelques résultats montrant que cela fonctionne:
>>> a=((),)
>>> type(a)
<type 'tuple'>
>>> len(a)
1
>>> a[0]
()
>>> type(a[0])
<type 'tuple'>
>>> len(a[0])
0
Je ne suis pas surpris que (())
n'ait pas fonctionné, puisque les parenthèses externes sont interprétées comme des parenthèses. Donc (()) == ()
, tout comme (2) == 2
. Cela devrait fonctionner, cependant:
((),)