Je voulais trier mon dictionnaire dans l'ordre inverse, l'ordre par dict imbriquée clé 0:Dict dans dict, trier dictionnaire par imbriqué clé
mydict = {
'key1': {0: 3, 1: ["doc1.txt", "doc2.txt"], 2: ["text1", "text2"]},
'key2': {0: 8, 1: ["doc6.txt", "doc7.txt"], 2: ["text3", "text4"]},
'key3': {0: 1, 1: ["doc8.txt", "doc9.txt"], 2: ["text7", "text8"]},
}
avoir cet ordre:
'key3': {0: 1, 1: ['doc8.txt', 'doc9.txt'], 2: ['text7', 'text8']}
'key1': {0: 3, 1: ['doc1.txt', 'doc2.txt'], 2: ['text1', 'text2']}
'key2': {0: 8, 1: ['doc6.txt', 'doc7.txt'], 2: ['text3', 'text4']}
Je a essayé:
import operator
sorted_dict = sorted(mydict.items(), key=operator.itemgetter(0), reverse=True)
Mais aucun succès.
double possible de [Trier un dictionnaire Python par valeur] (https://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value) –
['trié()'] (https://docs.python.org/ 3/library/functions.html # trié) crée une nouvelle liste triée - dans votre cas, une liste de tuples représentant les éléments du dictionnaire. Les dictons sont toujours non ordonnés en Python. [Le nouvel ordre préservant la représentation dans 3.6 et plus récent] (https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-compactdict) est considéré comme un détail d'implémentation et ne devrait pas être utilisé. Si vous avez besoin d'une dictée ordonnée, utilisez [collections.OrderedDict] (https://docs.python.org/3/library/collections.html#collections.OrderedDict). –
Ce n'est pas clair si l'OP veut trier les éléments de son dictionnaire, ou s'il veut trier les éléments dans le dictionnaire * et les conserver dans une structure de dictionnaire *. Si le premier conseil de @ IljaEverilä est le plus pertinent, si ce dernier, alors ma réponse est. –