首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据字典中某个键的最高值对字典列表进行排序?

如何根据字典中某个键的最高值对字典列表进行排序?
EN

Stack Overflow用户
提问于 2022-09-29 14:42:49
回答 2查看 33关注 0票数 0

在过去的两天里,我一直在努力解决这个问题,但我想不出答案。

我有一个字典列表,需要打印成一个表格,员工需要按出售的房产数量排列,从高到低。

代码语言:javascript
复制
import tabulate

data_list = [
         {
          'Name': 'John Employee',
          'Employee ID': 12345,
          'Properties Sold': 5,
          'Commission': 2500,
          'Bonus to Commission': 0,
          'Total Commission': 2500
         },
         {
          'Name': 'Allie Employee',
          'Employee ID': 54321,
          'Properties Sold': 3,
          'Commission': 1500,
          'Bonus to Commission': 0,
          'Total Commission': 1500
         },
         {
          'Name': 'James Employee',
          'Employee ID': 23154,
          'Properties Sold': 7,
          'Commission': 3500,
          'Bonus to Commission': 525,
          'Total Commission': 4025
          }
         ]

header = data_list[0].keys()

rows = [x.values() for x in data_list]

print(tabulate.tabulate(rows, header))

输出:

代码语言:javascript
复制
Name              Employee ID    Properties Sold    Commission    Bonus to Commission    Total Commission
--------------  -------------  -----------------  ------------  ---------------------  ------------------
John Employee           12345                  5          2500                      0                2500
Allie Employee          54321                  3          1500                      0                1500
James Employee          23154                  7          3500                    525                4025

所需产出:

代码语言:javascript
复制
Name              Employee ID    Properties Sold    Commission    Bonus to Commission    Total Commission
--------------  -------------  -----------------  ------------  ---------------------  ------------------
James Employee          23154                  7          3500                    525                4025
John Employee           12345                  5          2500                      0                2500
Allie Employee          54321                  3          1500                      0                1500
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-29 14:45:53

您可以按出售的属性对字典列表进行排序:

代码语言:javascript
复制
sorted_data_list = sorted(data_list, key=lambda x: x["Properties Sold"], reverse=True)

header = sorted_data_list[0].keys()

rows = [x.values() for x in sorted_data_list]

print(tabulate.tabulate(rows, header))
票数 1
EN

Stack Overflow用户

发布于 2022-09-29 14:48:13

从未使用过tabulate,我可以在pandas中提出一个解决方案

代码语言:javascript
复制
df = pd.DataFrame.from_records(data_list).sort_values(by='Properties Sold', ascending=False)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73897472

复制
相关文章

相似问题

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