我有一个词典列表
[{'abc':1},{'abcd':2},{'ab':1}]
基于密钥列表的长度必须排序
[{'abcd':2},{'abc':1},{'ab':1}]
答案 0 :(得分:1)
如果您想按最长的键排序:
l = [{'abc':1},{'abcd':2},{'ab':1}]
l.sort(key=lambda x: len(next(iter(x))), reverse=True)
print(l)
答案 1 :(得分:0)
如果你想按第一把钥匙排序,它会是这样的:
l.sort(lambda a, b: -cmp(len(a.keys()[0]), len(b.keys()[0])))
但是,如果你想按最大键排序,这里的答案是:
def maxKeyLen(d): return max(len(k) for k in d.keys())
l.sort(lambda a, b: -cmp(maxKeyLen(a), maxKeyLen(b)))