鱼C论坛

 找回密码
 立即注册
查看: 2258|回复: 1

[已解决]统计销售数据-字典

[复制链接]
发表于 2021-5-31 20:58:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】

已知数据:有字典employee = {"0001":"Mary","St0002":"Lee","D0003":"Wang"}存储的是雇员号和姓名。

从标准输入以如下格式录入销售额字典:

    第一行录入信息条数

    第二行开始录入  雇员号-城市 销售数量 用空格隔开

    存入sales列表

数据录入完成后,sales列表的格式如下所示:

    sales=[["0001-Chongqing",5],["St0002-Shanghai",2], ["St0002-Shanghai",5],["D0003-Nanjing",3], ["St0002-Shanghai",4], ["D0003-Nanjing",1]]

根据以上数据,统计每个人的销售业绩并进行降序排序,最后输出排序结果。


【输入形式】

从标准输入以如下格式录入销售额字典:

    第一行录入信息条数

    第二行开始录入  雇员号-城市 销售数量 用空格隔开

    存入sales列表,其中雇员号是字典employee中的雇员号,而城市可以随便写

数据录入完成后,sales列表的格式如下所示:

    sales=[["0001-Chongqing",5],["St0002-Shanghai",2], ["St0002-Shanghai",5],["D0003-Nanjing",3], ["St0002-Shanghai",4], ["D0003-Nanjing",1]]

    其中"0001-Chongqing"表示Mary所属公司是Chongqing,本次销售额为5。

【输出形式】

按销售额从大到小的顺序输出

城市 姓名 销售总额

其中城市、姓名是字符串,销售总额是整数,每个元素占10个位置,左对齐。


【样例输入】

6

0001-Chongqing 5

St0002-Shanghai 2

St0002-Shanghai 5

D0003-Nanjing 3

St0002-Shanghai 4

D0003-Nanjing 1


【样例输出】

Shanghai  Lee       11

Chongqing Mary      5

Nanjing   Wang      4
最佳答案
2021-6-1 10:17:04


参考代码:
count = int(input())
temp = {}
employee = {"0001":"Mary","St0002":"Lee","D0003":"Wang"}
for i in range(count):
    id_city, sale = input().split()
    id, city = id_city.split("-")
    temp.setdefault(id_city, [id,city,0])
    temp[id_city][2] += int(sale)
result = [list(i) for i in temp.items()]
result.sort(key=lambda x: x[1][2], reverse=True)

for i in result:
    print(f"{i[1][1]:<10}{employee[i[1][0]]:<10}{i[1][2]:<10}")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-1 10:17:04 | 显示全部楼层    本楼为最佳答案   


参考代码:
count = int(input())
temp = {}
employee = {"0001":"Mary","St0002":"Lee","D0003":"Wang"}
for i in range(count):
    id_city, sale = input().split()
    id, city = id_city.split("-")
    temp.setdefault(id_city, [id,city,0])
    temp[id_city][2] += int(sale)
result = [list(i) for i in temp.items()]
result.sort(key=lambda x: x[1][2], reverse=True)

for i in result:
    print(f"{i[1][1]:<10}{employee[i[1][0]]:<10}{i[1][2]:<10}")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表