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 :

Dict to Array


Sujet :

Python

Vue hybride

neeoo11 Dict to Array 31/05/2011, 15h08
N.tox en python 3.x, on peut... 31/05/2011, 15h18
neeoo11 ok, j'ai un peu simplifié mon... 31/05/2011, 15h43
N.tox Ah mais je suis nul ! Après... 31/05/2011, 16h50
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2009
    Messages : 51
    Par défaut Dict to Array
    bonjour j'ai un petit souci :
    je veux creer 2 methodes, une qui me transforme un dictionnaire en Array et une autre qui fais le contraire (array to dict)

    voila la 1ere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Tous ses dictionnaires dans stockés dans le script "pm3.py" que j'importe bien sur.
     
    alpha = {1 :3.356386, 6:2.707807, 7:2.830545, 8:3.217102}
     
    K = {
    1: [ 1.128750,-1.060329,  0.000000,  0.000000],
    6: [ 0.050107,0.050733,   0.000000,  0.000000],
    7: [ 1.501674,-1.505772,  0.000000,  0.000000],
    8: [-1.131128, 1.137891,  0.000000,  0.000000],
    }
    L = {
    1: [5.096282, 6.003788,  0.000000,  0.000000],
    6: [6.003165, 6.002979,  0.000000,  0.000000],
    7: [5.901148, 6.004658,  0.000000,  0.000000],
    8: [6.002477, 5.950512,  0.000000,  0.000000],
    }
    M = {
    1: [1.537465, 1.570189,  0.000000,  0.000000],
    6: [1.642214, 0.892488,  0.000000,  0.000000],
    7: [1.710740, 1.716149,  0.000000,  0.000000],
    8: [1.607311, 1.598395,  0.000000,  0.000000],
    }
     
    def dictToArray(alpha,K, L, M):
      tableau = []
      for cle in [1,6,7,8]:
        tableau.append(alpha[cle])
      for cle in [1,6,7,8]:
        tableau += K[cle]
      for cle in [1,6,7,8]:
        tableau += L[cle]
      for cle in [1,6,7,8]:  
        tableau += M[cle]
      tableau = numpy.array(tableau)
        return tableau
     
    def arrayToDict(tableau):
      counter = 0
      alpha = {}
      for cle in [1,6,7,8]:
        K[cle] = tableau[counter : counter + len( (pm3.K)[cle] ) ] 
      print K

    Sauf qu'au niveau de la 2eme methode qui n'accepte pas la synthaxe des " : "
    mon idée c'est d'ajouter les elements d'indice "counter" jusqu'a "counter + len(pm3.K)"

    merci pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    en python 3.x, on peut utiliser un comprehension_dict de la même façon qu'une comprehension list:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> d={i:i**2 for i in range(3)}
    {0:0, 1:1, 2:4}
    l'équivalent en python 2.x (en tous cas jusqu'à la 2.6 sûr):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> d=dict([(i,i**2) for i in range(3)])
    {0:0, 1:1, 2:4}
    on peut donc créer un dictionnaire à partir d'une liste de tuple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> d= dict( [('a',1),('b',2)] )
    {'a':1, 'b':1}
    Je pense que ceci pourrait t'aider, en tous cas je l'espère.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2009
    Messages : 51
    Par défaut
    ok, j'ai un peu simplifié mon code
    mais le programme me sort l'erreur : 'numpy.ndarray' object is not callable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    def dictToArray(alpha,K, L, M):
      tableau = []
      for cle in [1,6,7,8]:
        tableau.append(alpha[cle])
      for cle in [1,6,7,8]:
        tableau += K[cle]
      for cle in [1,6,7,8]:
        tableau += L[cle]
      for cle in [1,6,7,8]:  
        tableau += M[cle]
      tableau = numpy.array(tableau)
     
      return tableau
     
     
    dictToArray(pm3.alpha,pm3.K,pm3.L,pm3.M)
     
     
    def arrayToDict(Tab):
      counter = 0
      alpha = {}
      for cle in [1,6,7,8]:
     
        alpha[cle] = Tab(counter)
        counter +=1
     
      print alpha
     
     
    arrayToDict(dictToArray(pm3.alpha,pm3.K,pm3.L,pm3.M))

  4. #4
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Ah mais je suis nul ! Après un petite relecture de ton code d'origine, je t'ai dit un truc qui n'a rien à voir, méa culpa. Bon ceci dit numpy, je m'en suis trop peu servi pour me rappeler quoi que ce soit... sorry

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

Discussions similaires

  1. [XSL][ARRAY]
    Par miloud dans le forum XMLRAD
    Réponses: 4
    Dernier message: 02/10/2003, 15h46
  2. Erreur "size array"
    Par boobob dans le forum C
    Réponses: 3
    Dernier message: 06/08/2003, 10h18
  3. TStringList en array of string
    Par JediKerian dans le forum Langage
    Réponses: 2
    Dernier message: 20/03/2003, 15h37
  4. Réponses: 2
    Dernier message: 23/02/2003, 00h49
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

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