Python:基于键的字典排序列表

时间:2015-03-05 10:46:25

标签: python

我有一个词典列表

[{'abc':1},{'abcd':2},{'ab':1}]

基于密钥列表的长度必须排​​序

[{'abcd':2},{'abc':1},{'ab':1}]

2 个答案:

答案 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)))