Ich habe eine verschachtelte Wörterbuch:Sortieren verschachtelte defaultdict
nestedDict = defaultdict(lambda:defaultdict(list))
es Werte der Form hat:
termId: {
'docId': [position1, position2, position3, position4],
'docId': [position1, position2, position3, position4]
}
zB:
95074715468325493716883841120098961347 defaultdict(<class 'list'>,
{'193083866963132215734985636049608586841': [1922, 1948, 1952, 1954],
'39188502589169058624219974133946618900': [1922, 1948, 1952, 1954]})
Ich möchte es sortieren, auf der Grundlage von DocId in aufsteigender Reihenfolge als
Für Beispiel:
1: {1:[1,2,3],2:[1,3,4],3:[1,3,4]} //docId should be in ascending order in each row
2: {1:[1,2,3],2:[1,3,4],3:[1,3,4]}
Ich versuche dies:
orderedDict = OrderedDict(sorted(nestedDict.items(), key=lambda t: nestedDict[1][0]))
Ich weiß, das ist falsch, aber ich weiß nicht, wie es richtig zu machen. Ich bin neu bei python.Sorry für das Stellen dieser grundlegenden Frage.
.Es in absteigender Reihenfolge ist die Sortierung? –
@MuhammadRaghib, es war nicht klar in Ihrer Frage, ob Sie Ihre Schlüssel so sortieren wollten, als wären sie ganze Zahlen oder Strings. 'int ('10 ')> int (' 3 ')', aber '' 10 '<' 3''. Entfernen Sie diesen Aufruf auf "int", wenn Sie Letzteres bevorzugen. – ymbirtt
@ymbirt Dieser Code sortiert nach den Schlüsseln (äußeres Wörterbuch). Ich möchte ihn nach den Schlüsseln des inneren Wörterbuchs sortieren: 309667110602326329470352776628338681619 defaultdict (, {'193083866963132215734985636049608586841': [1895], '39188502589169058624219974133946618900': [1895], '311107235584665083555814081636686808932': [197]}) Es sollte den seine form309767110602326329470352776628338681619 defaultdict (, { '193083866963132215734985636049608586841'.: [1895], '311107235584665083555814081636686808932': [197] ‚39188502589169058624219974133946618900 ': [1895]) –