python - 如何按特定键对键值存储列表进行排序?
问题描述
假设输入是这样的:
"[{'ability': 18, 'spin': -14, 'strike': 0, 'purity': 5, 'power': 257}, {'ability': -6, 'spin': 147, 'strike': -17, 'purity': 6, 'power': 288}, {'ability': 9, 'spin': 272, 'strike': 10, 'purity': 8, 'power': 256}, {'ability': 0, 'spin': 138, 'strike': -6, 'purity': 19, 'power': 205}]"
我必须根据“能力”键的值对输入进行排序。
def sort_kvs(lsts):
l = len(lsts)
sort = []
smallest = lsts[0]["ability"]
for i in range (l):
if lsts[i]["ability"] < lsts[0]["ability"]:
smallest = lsts[i]["ability"]
small = lsts[i]
sort.append(small)
return sort
我想要这样的输出:[{'ability': -6, 'spin': 147, 'strike': -17, 'purity': 6, 'power': 288}, {'ability': 0, 'spin': 138, 'strike': -6, 'purity': 19, 'power': 205}, {'ability': 9, 'spin': 272, 'strike': 10, 'purity': 8, 'power': 256}, {'ability': 18, 'spin': -14, 'strike': 0, 'purity': 5, 'power': 257}]
解决方案
sorted(data, key=lambda x: x['ability'])
输出:
{'ability': -6, 'spin': 147, 'strike': -17, 'purity': 6, 'power': 288}
{'ability': 0, 'spin': 138, 'strike': -6, 'purity': 19, 'power': 205}
{'ability': 9, 'spin': 272, 'strike': 10, 'purity': 8, 'power': 256}
{'ability': 18, 'spin': -14, 'strike': 0, 'purity': 5, 'power': 257}
推荐阅读
- c# - 应该如何将 IIS 托管的基于 ASP.Net 的系统部署到 Azure Service Fabric?
- python - 使用 python GEKKO 模拟向量 ODE
- sql-server - 重复行合并sql查询
- ruby - 像 bash 中一样的 ruby 参数扩展
- php - 网站关闭在 null 上调用成员函数 get_item_quantity()
- android - 当我切换到其他片段并返回具有 recyclerview 的片段时,我的 recyclerview 数据不断加倍
- powershell - 是否有使用 StreamWriter 写入文本文件的 PowerShell 日志记录模块?
- ruby - 来自 Rakefile 的黄瓜测试报告
- haskell - Haskell:可以递归调用 main 吗?
- javascript - 将 css、html 文件填充到一个 Javascript 文件中