我會使用一個字典:
# Squares:3 Rectangles:4 Oval=2 Triangle=1
shapes = {}
shapes["Square"] = 3
shapes["Rectangle"] = 4
shapes["Oval"] = 2
shapes["Triangle"] = 1
print(shapes) # {'Square': 3, 'Oval': 2, 'Triangle': 1, 'Rectangle': 4}
# Sort list of key,value pairs in descending order
pairs = sorted(shapes.items(), key=lambda pair: pair[1], reverse=True)
print(pairs) # [('Rectangle', 4), ('Square', 3), ('Oval', 2), ('Triangle', 1)]
# Get your list, in descending order
vals = [v for k,v in pairs]
print(vals) # [4, 3, 2, 1]
# Get the keys of that list, in the same order
keys = [k for k,v in pairs] # ['Rectangle', 'Square', 'Oval', 'Triangle']
print(keys)
輸出:
{'Square': 3, 'Oval': 2, 'Triangle': 1, 'Rectangle': 4} # shapes
[('Rectangle', 4), ('Square', 3), ('Oval', 2), ('Triangle', 1)] # pairs
[4, 3, 2, 1] # vals
['Rectangle', 'Square', 'Oval', 'Triangle'] # keys
對於細心的讀者,字典是沒有必要的 - 但我想有更多的,我們不知道的目標,其中一本字典將使最有意義。
你能澄清你到底在問什麼嗎?你說你正在將字典的值映射到一個列表,所以你在那個時候丟失了密鑰。但是你說你想再次使用這些鍵。你爲什麼需要這個清單? –
您應該反轉鍵值對,並真正質疑您的數據結構。 如果你有一個'mydict = {4:'Rectangles'}'的字典,那麼'mydict [4]'會給你''矩形''。 但是爲什麼在你只需要一本字典時使用它們呢?你似乎有不必要的物體。 –
您可能想要使用「Counter」及其「most_common」方法。 https://docs.python.org/2/library/collections.html#collections.Counter.most_common –