**
问题描述
**
给N名员工的工资清单,按照工资分布的人数降序排序,如果有两个工资的人的数目一致(大概意思就是假设3000工资有3个人,5000也是三个人),就按照工资在给定清单的顺序里面排序。
输入
4,1,4,4,2,1,2,3,1,9,1,2,8,7,5,6,3,4,3,6
输出
4,4,4,4,1,1,1,1,2,2,2,3,3,3,6,6,9,8,7,5
python实现:
思路:
1、输入的数据以列表形式存储,去除空格
2、用字典来存储列表数据,列表数据为键,出现次数为值
3、遍历列表,该项若有,则值加1,;若无,则添加该项,值为1
4、对字典的值排序,输出为二维列表的形式。
5、按字典排序后的列表进行输出。
in_nums = input("输入数据")
in_nums = in_nums.split(' ')
temp = {}
out_nums = []
for nums in in_nums:
if nums in temp.keys():
temp[nums] += 1
else:
temp[nums] = 1
aa = sorted(temp.items(), key=lambda item: item[0])
for i in aa:
for j in range(int(i[1])):
out_nums.append(int(i[0]))
print(out_nums)