使用字符串数字键对字典进行数字排序的最具python风格的方法是什么?
这是我的格式,dict: 虽然键是字符串,但如何对dict['server']进行数字排序?我能想到的所有方法都需要多个名称,而且一点也不觉得很像Pythonic。使用collections.OrderedDict 例: 输出:使用字符串数字键对字典进行数字排序的最具python风格的方法是什么?,python,python-2.7,sorting,dictionary,Python,Python 2.7,Sorting,Dictionary,这是我的格式,dict: 虽然键是字符串,但如何对dict['server']进行数字排序?我能想到的所有方法都需要多个名称,而且一点也不觉得很像Pythonic。使用collections.OrderedDict 例: 输出: 你为什么需要把字典的键分类?您尝试过什么?将字符串转换为整数?在Python 2.7中,字典是无序的。您必须使用@MatthewStory:Python 3.7正式将dict order retention作为语言规范的一部分。{k:v代表k,v在sorteddi['s
你为什么需要把字典的键分类?您尝试过什么?将字符串转换为整数?在Python 2.7中,字典是无序的。您必须使用@MatthewStory:Python 3.7正式将dict order retention作为语言规范的一部分。{k:v代表k,v在sorteddi['server'].items}将其用于OrderedDict或Python 3.6+dict,您能向我解释为什么键在OrderedDict sortedd['server']中的值。items,key=lambda x:intx[0]:throws-ValueError:没有足够的值来解包本例中的预期值2,得到1?您缺少项Ex:对于键,集合中的值。OrderedDictsortedd['server']。项,项=lambda x:intx[0]。项:
{
"server" : {
"2" : {
name : "Chris",
text : "Hello!"
},
"1" : {
name : "David",
text : "Hey!"
}
}
}
import collections
d = {
"server" : {
"2" : {
"name" : "Chris",
"text" : "Hello!"
},
"1" : {
"name" : "David",
"text" : "Hey!"
}
}
}
print collections.OrderedDict(sorted(d["server"].items(), key=lambda x: int(x[0])))
OrderedDict([('1', {'text': 'Hey!', 'name': 'David'}), ('2', {'text': 'Hello!', 'name': 'Chris'})])