tri d'un dictionnaire de dictionnaire
Bonjour à tous,
J'ai une structure un peu complexe que j'aimerai trier pour obtenir un dictionnaire (le bouquin pas le type python ;) )
Voici un exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| from collections import OrderedDict
allObjs = OrderedDict()
firstLetter = "R"
color = "Rouge"
obj = "ballon rouge"
allObjs[firstLetter] = OrderedDict()
allObjs[firstLetter][color] = [obj]
allObjs[firstLetter][color].append("fleur rouge")
allObjs[firstLetter][color].append("chapeau rouge")
firstLetter = "J"
color = "Jaune"
obj = "veste jaune"
allObjs[firstLetter] = OrderedDict()
allObjs[firstLetter][color] = [obj]
allObjs[firstLetter][color].append("crayon jaune")
allObjs = OrderedDict(sorted(allObjs.items()))
print(allObjs) |
J'aimerai en plus, trier les objets par ordre alphabétique de nom
Je ne connais pas la liste des couleurs donc je ne peux pas faire :
Code:
1 2
| allObjs["J"]["Jaune"].sort()
allObjs["R"]["Rouge"].sort() |
ou alors cela m'oblige à reparcourir tous mon dictionnaire :calim2:
Code:
1 2 3 4
|
for firstLetter, definitions in allObjs.iteritems():
for color in definitions:
allObjs[firstLetter][color].sort() |
Il doit bien y avoir plus efficace
Merci pour votre aide