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!

23
demandé sur Ali Shakiba 2016-06-18 12:45:22

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
38
répondu Rory Daulton 2016-06-18 10:05:45

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:

((),)
4
répondu juanpa.arrivillaga 2017-08-31 23:00:15