expérimentalement, j'ai pu créer un comme celui-ci: mais la syntaxe semble un peu surchargée. Peut-on expliquer pourquoi il doit s'agir de cette façon de travailler (trois ensembles de parenthèses et une virgule)? P> p>
3 Réponses :
Le trailing Les parenthèses sont normalement utilisées dans des expressions mathématiques. Et ils sont également utilisés pour définir les tuples. P> S'il n'y a qu'un seul élément à l'intérieur d'une paire de parenthèses, il est considéré comme une expression et est évalué, renvoyant une valeur unique. . P> Pour dire à Python explicitement que c'est un , code> indique simplement Python que la valeur est une séquence, un
tuple code> dans ce cas.
tuple code>, un
, code> doit être ajouté à la fin. P>
>>> ((1, 2), (3, 4))
((1, 2), (3, 4))
Vous auriez pu utiliser Vous avez un jeu (non, pas de jeu de mots ...) de parenthèses pour l'appel de la fonction. Si vous souhaitez utiliser un tuple au lieu d'une liste, il devient un peu plus difficile de lire. L'équivalent tuple de la liste donc, remplacer mon et, bien sûr, comme indiqué dans les commentaires, définir ([(1, 2)]) code> pour obtenir la même chose. P>
SET () CODE> prend un argument ibler comme argument, la liste contenant votre seul tuple. P>
[item] code> est le tuple
(élément,) code> - la virgule en fait un tuple, pas les parenthèses. P>
[(1, 2)] code> avec
((1, 2),) code>, vous obtenez votre
Set ((((1, 2),))) code> p>
{(1, 2)} code> serait le moyen le plus simple de l'écrire ... p>
Pour être clair, vous souhaitez valider que le tuple (1, 2) code> est dans
s code>? Profitant de la flexibilité de Python pour la lisibilité pourrait vous aider à comprendre pourquoi le nombre de parenthèses est nécessaire.
set( # first paren is for calling the function set
( # second paren creates the object of items set should look at
(1,2), # is an item in the set
)
)
# output same as
set(((1,2), (1,2), (1,2)))
# output same as
t = ((1,2), (1,2), (1,2))
set(t)
# output same as
t = (1,2)
t = (t, t, t)
set(t)
# output same as
t = (1, 2)
set([t]*5)
Vous pouvez également utiliser
défini ([(1, 2)]) code>, qui pourrait être visuellement plus facile à analyser
Peut aussi déposer
SET () code> et utiliser
{(1, 2)} code>
Vous auriez également pu utiliser
{(1, 2)} code> qui est plus clair. Vous avez utilisé à la place le constructeur
définir code> qui nécessite un iérêteur d'articles, et vous avez décidé d'utiliser un autre i> tuple comme que c'est ibler et que les tuples singleton ont toujours l'air bizarre (et ne faites pas beaucoup de sens). Ainsi, vous auriez pu utiliser une liste,
Set ([(1,2)]) code>
Pour créer un tuple d'un élément, vous êtes une virgule supplémentaire à la fin, s'il n'y a pas de virgule, cela pourrait être une expression mathématique. Plus d'infos wiki.python.org/moin/tuplesyntax
Vous pouvez utiliser s = {(1, 2)} qui est plus élégant
Merci! {(1, 2)} apparemment est le moyen d'aller. Il suffit de vous demander comment fonctionne exactement la construction de la question.
Est parce que le constructeur code> code> prend une ierérable (vous utilisez ainsi 3 ensembles de parenthèses). Vous pouvez également faire
s = set () code> et
s.add ((1, 2)) code>.
Vous pouvez également le créer comme ce
s = {(((1,2),)} code>