【问题标题】:Dictionary Sorting based on lower dictionary value基于较低字典值的字典排序
【发布时间】:2016-12-05 22:05:28
【问题描述】:

我正在使用以这种格式返回值的 API:

raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]

我正在尝试返回具有前 2 个“值”的人的“姓名”:

result = ['Joe','Erica']

完成此任务的最有效方法是什么?

【问题讨论】:

  • 您的当前方式在哪里,您认为怎样才能更有效率?另外,您认为为什么需要这样做?
  • 你为什么使用字典列表而不是单个字典映射名称到值?
  • @tobias_k 这是 API 生成的结果(我无法控制),因此是我必须使用的起始数据

标签: python dictionary


【解决方案1】:
raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]

raw.sort(key=lambda d: d['Value'], reverse=True)

result = []
for i in range(2):
    result.append(raw[i]['Name'])

print(result) # => ['Joe', 'Erica']

打印(结果)

试试这个。

【讨论】:

  • 我使用的是 Python 3.x+,在第 2 行的 d 处出现语法错误。我在这里遗漏了什么?
  • 我不知道,这段代码在 Python 2.7.10 和 3.5.0 上都适用于我。你的版本是什么,你能在这里评论错误吗?
猜你喜欢
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多