值的字典顺序

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')]