IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

tuple avec un élement mais qui montre une virgule : comment s'en débarrasser


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2022
    Messages : 36
    Points : 35
    Points
    35
    Par défaut tuple avec un élement mais qui montre une virgule : comment s'en débarrasser
    bonjour
    j'ai un liste avec des tuples qui n'ont qu'un seul élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [('a',), ('b',), ('c',)]
    mais ces tuple sà) un élément ont une virgule, pourquoi?
    comment on fait pour avoir ca : [('a'), ('b'), ('c')] sans les virgules??

    merci

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    à lire ici par exemple:
    To create a tuple with one element, a comma , is required at the end.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 619
    Points : 56 854
    Points
    56 854
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    il fallait bien distinguer le caractère 'a' du tuple ('a',) avec un seul élément.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> type('a')
    <class 'str'>
    >>> type( ('a',) )
    <class 'tuple'>
    Voir la doc :
    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)...

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 103
    Points : 4 449
    Points
    4 449
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    j'ai un liste avec des tuples qui n'ont qu'un seul élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [('a',), ('b',), ('c',)]
    comment on fait pour avoir ca : [('a'), ('b'), ('c')] sans les virgules??
    Si le but est de juste ne pas avoir de virgule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [('a',), ('b',), ('c',)] -> [tuple('a'), tuple('b'), tuple('c')]
    Bien sûr, aucun intérêt 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...)
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = ('a', 'b', 'c')  # ou  tuple("abc")
    x = ['a', 'b', 'c']  # ou  list("abc")
    $moi= ( !== ) ? : ;

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    mais ces tuple sà) un élément ont une virgule, pourquoi?
    C'est la virgule qui fait le tuple, pas les parenthèses
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    v1=(5)
    v2=6, 7
    v1 est un int, v2 est un tuple. Donc tu veux un tuple à un élément, tu écris la virgule => v3=9,.

    Les parenthèses servent en cas de tuples en plusieurs dimensions, pour identifier les tuples les uns des autres
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    v1=((1, 2), (3,))
    v2=((1,), (2, 3,))
    Et pour homogénéiser l'écriture, on conseille de mettre des parenthèses tout le temps quand on parle de tuples.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    v1=5
    v2=(6, 7)
    v3=(9,)

    Citation Envoyé par sqlbeginner Voir le message
    comment on fait pour avoir ca : [('a'), ('b'), ('c')] sans les virgules??
    Pourquoi faire? Ton confort visuel??? Cette préoccupation n'est pas primordiale en Python.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    mais ces tuple sà) un élément ont une virgule, pourquoi?
    comment on fait pour avoir ca : [('a'), ('b'), ('c')] sans les virgules??
    Il suffit de regarder:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> [['a'], ('b'), ('c',)]
    [['a'], 'b', ('c',)]
    >>>
    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.

    Reste que vous devez faire la différence entre comment les choses apparaissent et ce qu'elles sont.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 27
    Dernier message: 07/07/2021, 18h34
  2. [XL-MAC 2011] Macro qui marche sous excel windows mais qui renvoie une erreur 438 sous mac
    Par xavion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2016, 13h53
  3. Réponses: 0
    Dernier message: 07/09/2016, 18h10
  4. Réponses: 0
    Dernier message: 06/05/2015, 11h47
  5. Bouton sur USF qui montre une image
    Par tomy7 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 17/04/2008, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo