[Python]
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un souci avec la méthode append().
Voici mon code :
print self.list_num_line_sharp[f], self.mat
self.mat2[self.list_num_line_sharp[f]].append(self.mat)
print self.mat2
Ces lignes sont imbriquées dans une boucle et voici ce qu'affiche le terminal :
20 {'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}
{20: [{'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}]}
130 {'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}
{130: [{'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}],
20: [{'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}]}
Je voudrais savoir pourquoi il me remplace la ligne commençant par '20:' par les valeurs de la ligne '30:'.
Moi je veux qu'à chaque fois il ajoute la ligne 'self.mat' et qu'il y associe la valeur 'self.list_num_line_sharp[f]'.
Où est mon erreur?
Merci
J'ai un souci avec la méthode append().
Voici mon code :
print self.list_num_line_sharp[f], self.mat
self.mat2[self.list_num_line_sharp[f]].append(self.mat)
print self.mat2
Ces lignes sont imbriquées dans une boucle et voici ce qu'affiche le terminal :
20 {'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}
{20: [{'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}]}
130 {'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}
{130: [{'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}],
20: [{'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}]}
Je voudrais savoir pourquoi il me remplace la ligne commençant par '20:' par les valeurs de la ligne '30:'.
Moi je veux qu'à chaque fois il ajoute la ligne 'self.mat' et qu'il y associe la valeur 'self.list_num_line_sharp[f]'.
Où est mon erreur?
Merci
7 réponses
Pour ajouter une valeur à un dictionnaire, il ne faut pas utiliser append.
Il ne faut pas faire:
mondico[cle].append(valeur)
mais:
mondico[cle] = valeur
La clé sera automatiquement créée dans le dictionnaire.
Il ne faut pas faire:
mondico[cle].append(valeur)
mais:
mondico[cle] = valeur
La clé sera automatiquement créée dans le dictionnaire.
J'ai bien essayé mais ça ne change rien.
J'ai les mêmes valeurs pour toutes les lignes.
Je ne comprends pas....
J'ai les mêmes valeurs pour toutes les lignes.
Je ne comprends pas....
Je procède comme ça:
Ce qui donne:
mat2 = {} cle = 20; mat = {'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']} print cle, mat mat2[cle] = mat print mat2 print '-----' cle = 130; mat = {'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']} print cle, mat mat2[cle] = mat print mat2
Ce qui donne:
20 {'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']} {20: {'vb': ['0.7'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}} ----- 130 {'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']} {130: {'vb': ['0.75'], 'vc': ['1'], 'vs': ['0'], 've': ['0']}, 20: {'vb': ['0.7' ], 'vc': ['1'], 'vs': ['0'], 've': ['0']}}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'y comprends rien.
J'ai viré les append(), mais ça ne marche pas.
Le fait que le dictionnaire "mat" soit créé dans une boucle ne pose pas de problème?
J'ai viré les append(), mais ça ne marche pas.
Le fait que le dictionnaire "mat" soit créé dans une boucle ne pose pas de problème?