我想按特定键的值对字典进行排序(示例中的“foo”)
mydict = dict()
mydict["a"] = {"foo": 0.3, "boo": 0.1}
mydict["b"] = {"foo": 0.1, "boo": 0.2}
mydict["c"] = {"foo": 0.8, "boo": 0.3}
mydict["d"] = {"foo": 0.5, "boo": 0.4}
mydict["e"] = {"foo": 0.2, "boo": 0.5}
# sort by "foo" in descending order
# expected result: [{"foo": 0.8, "boo": 0.3}, {"foo": 0.5, "boo": 0.4}, {"foo": 0.3, "boo": 0.1}, {"foo": 0.2, "boo": 0.5}, {"foo": 0.1, "boo": 0.2}]
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到上面评论中显示的我想要的结果?
And*_*ely 10
print(sorted(mydict.values(), key=lambda k: k["foo"], reverse=True))
Run Code Online (Sandbox Code Playgroud)
印刷:
[{'foo': 0.8, 'boo': 0.3}, {'foo': 0.5, 'boo': 0.4}, {'foo': 0.3, 'boo': 0.1}, {'foo': 0.2, 'boo': 0.5}, {'foo': 0.1, 'boo': 0.2}]
Run Code Online (Sandbox Code Playgroud)
编辑:包括"key"
:
[{'foo': 0.8, 'boo': 0.3}, {'foo': 0.5, 'boo': 0.4}, {'foo': 0.3, 'boo': 0.1}, {'foo': 0.2, 'boo': 0.5}, {'foo': 0.1, 'boo': 0.2}]
Run Code Online (Sandbox Code Playgroud)
印刷:
print(
sorted(
[{"key": k, **v} for k, v in mydict.items()],
key=lambda k: k["foo"],
reverse=True,
)
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
76 次 |
最近记录: |