我正在尝试使用字典键按升序对列表进行排序。
您可以假设每个字典级别只有一个键。
输入:
res = [{'hi': {'abc': 5}}, {'bye': {'def': 5}}, {'hi': {'cba': 5}}]
我的代码:
def getitem (item):
return (item.keys())
print (sorted(res, key = getitem))
所需输出:
[{'bye': {'def': 5}}, {'hi': {'abc': 5}}, {'hi': {'cba': 5}}]
最佳答案
你已经很接近了——只需将字典传递给 iter()
来创建一个迭代器,然后在迭代器中请求 next()
项。如果存在多个,则对字典中的第一个键进行排序(Python 3.6+ 字典按插入时间排序)。比较器可以返回相对优先级的元组,如果外部键相等,则可以对内部键进行排序。
res = [{'hi': {'abc': 5}}, {'bye': {'def': 5}}, {'hi': {'cba': 5}}]
def compare(d):
outer = next(iter(d))
return outer, next(iter(d[outer]))
print(sorted(res, key=compare))
关于python - 对列表中的 Python 字典对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56708355/