展开全部
首先字典这种数据类型本e69da5e887aa62616964757a686964616f31333335333037来就是无序的,需要排序的话,当然只能是列表这种可以排序的数据结构。
当然,如果只是输出的话,那么没问题,你转成字符串好了,想如何显示就如何显示。
干脆给你打出来好了:from operator import itemgetter
a = {
'u1':{'i1':1,'i2':8,'i3':15,'i4':12},
'u2':{'i1':3,'i2':4,'i3':10,'i4':2},
'u3':{'i1':9,'i2':2,'i3':5,'i4':11},
'u4':{'i1':7,'i2':5,'i3':1,'i4':5}
}
b = {}
for u in a.keys():
b[u] = sorted(a[u].items(), key = itemgetter(1), reverse=False)[0:2]
l=sorted(b.items(), key = itemgetter(0),reverse=False)
s= ''
print l
for x in l:
d = {}
for y in x[1]:
d[y[0]] = y[1]
s += ',' + "'%s':%s" % (x[0],d)
print '{%s}' % s[1:]
结果:{'u1':{'i1': 1, 'i2': 8},'u2':{'i1': 3, 'i4': 2},'u3':{'i3': 5, 'i2': 2},'u4':{'i3': 1, 'i2': 5}}