我有2个名为'speciality'和'count'的列表,它们是字典'P'的一部分。我用邮编按“计数”列表的降序对两个“列表”进行了排序。
speciality = ['Cardiology' , 'Nephrology', 'ENT', 'Opthalmology' 'Oncology']
count = [2, 7, 9, 9, 1]
count, speciality = zip(*[[x, y] for x, y in sorted(zip(count, speciality), reverse=True)])
P = {'Speciliaty': speciality, 'Count': count}
print(P)
# {'Speciliaty': ('Opthalmology', 'ENT', 'Nephrology', 'Cardiology', 'Oncology'), 'Count': (9, 9, 7, 2, 1)}
请注意,元素“眼科”和“耳鼻喉”具有相同的计数9。
但是,在执行Zip Sort之后。 在输出元组中,“眼科”出现在“ ENT”之前。在“输入”中,顺序为“ ENT”,然后是“眼科”。
我们可以像下面这样输出吗?
P = {'Speciliaty': ('ENT', 'Opthalmology', 'Nephrology', 'Cardiology', 'Oncology'), 'Count': (9, 9, 7, 2, 1)}
答案 0 :(得分:1)
您需要将key
中的sorted
设置为按计数排序。
例如:
speciality = ['Cardiology' , 'Nephrology', 'ENT', 'Opthalmology', 'Oncology']
count = [2, 7, 9, 9, 1]
count, speciality = zip(*[[x, y] for x, y in sorted(zip(count, speciality), key=lambda x: x[0], reverse=True)])
P = {'Speciliaty': speciality, 'Count': count}
print(P)
输出:
{'Count': (9, 9, 7, 2, 1), 'Speciliaty': ('ENT', 'Opthalmology', 'Nephrology', 'Cardiology', 'Oncology')}