首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据特定的键对键值存储列表进行排序?

如何根据特定的键对键值存储列表进行排序?
EN

Stack Overflow用户
提问于 2019-04-24 10:10:54
回答 2查看 25关注 0票数 0

假设输入是这样的:

代码语言:javascript
复制
"[{'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}]"

我必须根据关键字“能力”处的值对输入进行排序。

代码语言:javascript
复制
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}]

EN

回答 2

Stack Overflow用户

发布于 2019-04-24 10:12:49

在自定义key中使用sorted

代码语言:javascript
复制
>>> l = [{'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}]
>>> list(sorted(l, 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}]

如果sortedpython2,则不需要用list包装它

票数 0
EN

Stack Overflow用户

发布于 2019-04-24 10:13:55

代码语言:javascript
复制
sorted(data, key=lambda x: x['ability'])

输出:

代码语言:javascript
复制
{'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}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55821422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档