值的字典顺序
Dictionary order from the value
list1 = ['AMZN', 'CACC', 'EQIX', 'GOOG', 'ORLY', 'ULTA']
list2 = [[12.81, 11.09, 12.11, 10.93, 9.83, 8.14], [10.34, 10.56, 10.14, 12.17, 13.10,11.22], [12.81, 11.09, 12.11, 10.93, 9.83, 8.14]]
m = [sum(i) for i in zip(*list2)]
culo = []
for ss in m:
culo.append(ss/3)
zip_iterator = zip(list1, culo)
a_dictionary = dict(zip_iterator)
print(a_dictionary)
大家好,你知道如何从最大到最小的值对字典“a_dictionary”进行排序吗?
您可以使用 sorted()
的字典理解,传入 key
参数按值排序,传入 reverse
参数按降序排序:
{k: v for k, v in sorted(a_dictionary.items(), key=lambda x: x[1], reverse=True)}
这输出:
{
'AMZN': 11.986666666666666,
'EQIX': 11.453333333333333,
'GOOG': 11.343333333333334,
'ORLY': 10.92,
'CACC': 10.913333333333332,
'ULTA': 9.166666666666666
}
我会选择一个看起来更简单的解决方案:
m = ....
culo = [ (ss/3, l1) for ss, l1 in zip(m, list1)]
print(sorted(culo, reverse=True))
returns:
[(9.166666666666666, 'ULTA'),
(10.913333333333332, 'CACC'),
(10.92, 'ORLY'),
(11.343333333333334, 'GOOG'),
(11.453333333333333, 'EQIX'),
(11.986666666666666, 'AMZN')]