python - 对列表中的 Python 字典对象进行排序

标签 python python-3.x sorting dictionary

我正在尝试使用字典键按升序对列表进行排序。

您可以假设每个字典级别只有一个键。

输入:

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/

相关文章:

python - 我可以在 kubernetes python 客户端中使用正则表达式作为作业名称吗?

python - 如何在 Pycharm 中使用 Numpy 修复此 Polyfit 错误?

python - 程序跳过列表元素

使用外键按层次结构排序的 mySQL 查询

python - Django 更改 Photologue 的应用程序名称

函数内外的Python全局列表修改

python-3.x - 在 Pandas 中使用 groupby 获取行数

mysql - 如何根据其他表中的条目对结果进行排序

c# - 按列表包含的对象的属性对自定义列表进行排序

javascript - Django 客户端验证小数字段限制