gpt4 book ai didi

python - 如何按字典键内的值对字典进行排序?

转载 作者:行者123 更新时间:2023-12-01 01:14:32 24 4
gpt4 key购买 nike

所以我有这样的东西:

[
{
"arg1":
{"valueone" : 2, "valuetwo": 5"},
},
{
"arg2":
{"valueone" : 7, "valuetwo": 3"},
},
{
"arg3":
{"valueone" : 3, "valuetwo": 7"},
},
{
"arg4":
{"valueone" : 4, "valuetwo": 6"},
},
{
"arg5":
{"valueone" : 9, "valuetwo": 5"},
},

]

我想按它们的 valueone 对它们进行排序。我了解 OrderedDict,但是在执行此操作时遇到了一些麻烦。

预期结果是:

[
{
"arg5":
{"valueone" : 9, "valuetwo": 5"},
},
{
"arg2":
{"valueone" : 7, "valuetwo": 3"},
},
{
"arg4":
{"valueone" : 4, "valuetwo": 6"},
},
{
"arg3":
{"valueone" : 3, "valuetwo": 7"},
},

{
"arg1":
{"valueone" : 2, "valuetwo": 5"},
},


]

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用 sorted 的关键参数与 reverse=True 结合使用,例如:

data = [
{"arg1": {"valueone": 2, "valuetwo": "5"}},
{"arg2": {"valueone": 7, "valuetwo": "3"}},
{"arg3": {"valueone": 3, "valuetwo": "7"}},
{"arg4": {"valueone": 4, "valuetwo": "6"}},
{"arg5": {"valueone": 9, "valuetwo": "5"}}
]

result = sorted(data, key=lambda x: next(x["valueone"] for x in x.values()), reverse=True)
print(result)

输出

[{'arg5': {'valuetwo': '5', 'valueone': 9}}, {'arg2': {'valuetwo': '3', 'valueone': 7}}, {'arg4': {'valuetwo': '6', 'valueone': 4}}, {'arg3': {'valuetwo': '7', 'valueone': 3}}, {'arg1': {'valuetwo': '5', 'valueone': 2}}]

关于python - 如何按字典键内的值对字典进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54482780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com