Liste des dictionnaires, dans un dictionnaire Python
J'ai un cas où j'ai besoin pour la construction de structure suivante par programme (oui j'en suis conscient .setdefault et defaultdict mais je ne peux pas obtenir ce que je veux)
En gros, j'ai besoin d'un dictionnaire, un dictionnaire de dictionnaires créés à l'intérieur de la boucle.
Au début, la structure est complètement vide.
structure de l'échantillon (veuillez noter, je veux créer un tableau de cette structure dans le code!)
RULE = {
'hard_failure': {
4514 : {
'f_expr' = 'ABC',
'c_expr' = 'XF0',
}
}
}
pseudo-code qui a besoin de créer ce:
...
self.rules = {}
for row in rows:
a = 'hard_failure'
b = row[0] # 4514
c = row[1] # ABC
d = row[2] # XF0
# Universe collapse right after
self.rules = ????
...
Le code ci-dessus n'est évidemment pas de travail car je ne sais pas comment le faire!
- votre exemple n'est pas un python
- Essayer d'être plus clair, votre structure de l'échantillon n'a pas de sens. Vous ne pouvez pas utiliser 4514 : {} la syntaxe à l'intérieur des crochets.
InformationsquelleAutor Terry Felkrow | 2009-12-11
Vous devez vous connecter pour publier un commentaire.
Exemple, que vous avez posté n'est pas valide, le code python, je ne pouvais qu'imaginer que vous êtes en train de faire quelque chose comme ceci:
de cette façon
self.rules
est un dictionnaire d'une liste d'un dictionnaire de dictionnaire. Je parie qu'il y est plus sain de le faire.C'est ce que j'ai créé basé sur la façon dont j'ai compris les questions. Je n'étais pas sûr de ce que d'appeler la 'f_expr" et "c_expr" puisque vous n'en parlez pas où vous obtenez ces mais je suppose qu'ils sont déjà connaître les noms de colonne dans un jeu de résultats ou d'une structure quelconque.
Suffit d'ajouter à la structure que vous allez.
Votre exemple de code ne semble pas être valide Python. Il n'est pas clair si le deuxième élément de niveau est censé être une liste ou un dictionnaire.
Cependant, si vous faites ce que je pense que vous faites, et c'est un dictionnaire, vous pouvez utiliser un tuple comme une clé dans le dictionnaire au lieu de nidification des dictionnaires:
Ma façon préférée de faire face avec imbriqué dictionnaires & des listes de dictionnaires est d'utiliser PyYAML. Voir cette réponse pour plus de détails.
Bien, je m'excuse pour la confusion, je n'ai jamais prétendu que le code compilé, donc (pseudo). Arthur Thomas m'a mis sur la piste, ici est la version légèrement modifiée. (Oui, maintenant c'est un tout simplement imbriquée dictionnaire, 3 niveaux)