bonjour
j'ai un liste avec des tuples qui n'ont qu'un seul élément:
mais ces tuple sà) un élément ont une virgule, pourquoi?Code:[('a',), ('b',), ('c',)]
comment on fait pour avoir ca : [('a'), ('b'), ('c')] sans les virgules??
merci
Version imprimable
bonjour
j'ai un liste avec des tuples qui n'ont qu'un seul élément:
mais ces tuple sà) un élément ont une virgule, pourquoi?Code:[('a',), ('b',), ('c',)]
comment on fait pour avoir ca : [('a'), ('b'), ('c')] sans les virgules??
merci
Hello,
à lire ici par exemple:
Ami calmant, J.PCitation:
To create a tuple with one element, a comma , is required at the end.
Bonjour,
il fallait bien distinguer le caractère 'a' du tuple ('a',) avec un seul élément.
Voir la doc :Code:
1
2
3
4 >>> type('a') <class 'str'> >>> type( ('a',) ) <class 'tuple'>
Citation:
un n-uplet avec un seul élément se construit en faisant suivre la valeur par une virgule (placer cette valeur entre parenthèses ne suffit pas)...
Si le but est de juste ne pas avoir de virgule
Bien sûr, aucun intérêt :lol: mais c'est ta question... Si tu désires avoir des tuples, alors il faut bien le dire à python, et toi, tu sembles ne pas vouloir le faire ( tu connais la façon classique mais ne désires pas faire comme nous tous...) :mouarf:Code:[('a',), ('b',), ('c',)] -> [tuple('a'), tuple('b'), tuple('c')]
Autre façon excentrique de le faire (mais ici aussi il faut l'indiquer à python) x = [tuple(t) for t in "abc"], mais reste équivalent à [(t,) for t in "abc"], je n'ai plus qu'une seule virgule au lieu de X.
En fait, je me demanderais pourquoi je désire des tuples dans ce cas ? et franchement je ne trouve pas une raison, sinon vouloir faire compliqué lorsque c'est simple ...
Code:
1
2 x = ('a', 'b', 'c') # ou tuple("abc") x = ['a', 'b', 'c'] # ou list("abc")
C'est la virgule qui fait le tuple, pas les parenthèses
v1 est un int, v2 est un tuple. Donc tu veux un tuple à un élément, tu écris la virgule => v3=9,.Code:
1
2 v1=(5) v2=6, 7
Les parenthèses servent en cas de tuples en plusieurs dimensions, pour identifier les tuples les uns des autres
Et pour homogénéiser l'écriture, on conseille de mettre des parenthèses tout le temps quand on parle de tuples.Code:
1
2 v1=((1, 2), (3,)) v2=((1,), (2, 3,))
Code:
1
2
3 v1=5 v2=(6, 7) v3=(9,)
Pourquoi faire? Ton confort visuel??? Cette préoccupation n'est pas primordiale en Python.
Il suffit de regarder:
Les parenthèses servent d'abord à changer les priorités dans l'évaluation d'une expression d'où le ('b') qui se réduit à 'b' (après l'évaluation). Pour le ('c',) ça permet à l'humain de voir qu'il s'agit d'un tuple et vu à quoi servent d'abord les parenthèses, c'est la présence de la virgule qui fait le tuple. Ce dont on peut se passer pour les listes et leurs crochets.Code:
1
2
3 >>> [['a'], ('b'), ('c',)] [['a'], 'b', ('c',)] >>>
Reste que vous devez faire la différence entre comment les choses apparaissent et ce qu'elles sont.
- W