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 :

Changer le nom d'une liste [Python 2.X]


Sujet :

Python

  1. #1
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut Changer le nom d'une liste
    Bonjour,

    Je vais peut être poser une question bête mais j'aimerai changer le nom d'une liste par ce qui se trouve à son indice 0.

    Je m'explique, j'ai une liste de liste qui se nomme LIST=[[CAS_A, Value_1, Value_2, Value_3, ......], [CAS_B, Value_1, Value_2, Value_3, ......], .......]

    Actuellement LIST[0] me retourne [CAS_A, Value_1, Value_2, Value_3, ......] ce qui est normal, ce que je souhaite c'est avoir :

    CAS_A=[CAS_A, Value_1, Value_2, Value_3, ......]
    CAS_B=[CAS_B, Value_1, Value_2, Value_3, ......],

    etc ...

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Ce n'est pas très clair, si tu connais le premier élément de chaque liste rien ne t'empêche de faire:
    CAS_A = LISTE[0][:]

    Seulement CAS_A n'est pas entre guillemets et si ce n'est pas une chaîne de caractères alors c'est un nom.

    C'est à dire que CAS_A réfère déjà à quelque chose d'autre.

    En plus je ne vois pas vraiment de solution à ça, même avec eval() ça ne marche pas.

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    En fait ça ne marche pas avec eval() mais bien avec exec()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    l = [["CAS_A", "Value_1", "Value_2", "Value_3"], ["CAS_B", "Value_1", "Value_2", "Value_3"]]
     
    for i in l:
        exec('%s = %s' %(i[0], i[:]))
     
    print(CAS_A)
    print(CAS_B)

  4. #4
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par VinsS Voir le message
    En fait ça ne marche pas avec eval() mais bien avec exec()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    l = [["CAS_A", "Value_1", "Value_2", "Value_3"], ["CAS_B", "Value_1", "Value_2", "Value_3"]]
     
    for i in l:
        exec('%s = %s' %(i[0], i[:]))
     
    print(CAS_A)
    print(CAS_B)
    Merci c'est exactement cela qu'il me fallait. En plus je viens de me documenter sur exec que je ne connaissais pas.

    Encore merci.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 732
    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 732
    Par défaut
    Salut,

    "exec" et "eval" sont à éviter sauf lorsqu'on ne peut faire autrement.
    Dans votre cas, créer dynamiquement une variable globale à partir d'une chaine de caractère, c'est ajouter une entrée dans le "dict" globals():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> L = [["CAS_A", "Value_1", "Value_2", "Value_3"], ["CAS_B", "Value_1", "Value
    _2", "Value_3"]]
    >>> for e in L:
    ...     globals()[e[0]] = e
    ...
    >>> print (CAS_A)
    ['CAS_A', 'Value_1', 'Value_2', 'Value_3']
    >>> print (CAS_B)
    ['CAS_B', 'Value_1', 'Value_2', 'Value_3']
    >>>
    Et il est même préférable de fabriquer un "dict" à part plutôt que de polluer globals().

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer le nom d'une table sur SQL server avec une requete
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 01/02/2014, 23h35
  2. Changer le nom d'une colonne
    Par Poussy-Puce dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/07/2007, 11h57
  3. Changer le nom d'une section de fichier ini
    Par muquet dans le forum Langage
    Réponses: 4
    Dernier message: 27/01/2006, 13h10
  4. Changer le nom du'une appli SDI
    Par semenzato dans le forum MFC
    Réponses: 1
    Dernier message: 15/12/2005, 16h21
  5. Changer le nom d'une machine
    Par botambaoaks dans le forum Administration système
    Réponses: 2
    Dernier message: 05/10/2005, 16h20

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