我必須按值排序字典並返回一個字符串。排序字典並創建一個字符串
d = {'K': 1000, 'M': 1200, 'R': 600, 'T': 400}
s = sorted(d, key=d.get, reverse=True)
我也得到:
['M', 'K', 'R', 'T']
如何以這種形式與價值返回鍵?
1. M: 1200
2. K: 1000
3. R: 600
4. T: 400
我必須按值排序字典並返回一個字符串。排序字典並創建一個字符串
d = {'K': 1000, 'M': 1200, 'R': 600, 'T': 400}
s = sorted(d, key=d.get, reverse=True)
我也得到:
['M', 'K', 'R', 'T']
如何以這種形式與價值返回鍵?
1. M: 1200
2. K: 1000
3. R: 600
4. T: 400
你必須攜帶鍵的值。在這種情況下,排序根據值,只需:
d = {'K': 1000, 'M': 1200, 'R': 600, 'T': 400}
s = sorted(d.items(), key=lambda x : x[1], reverse=True)
print(s)
結果:
[('M', 1200), ('K', 1000), ('R', 600), ('T', 400)]
和用於顯示,在排序的項目,其中解壓縮在i,(k,v)
使用enumerate
起始於1
(i
是索引,k
和v
是字典的鍵/值)
for i,(k,v) in enumerate(sorted(d.items(), key=lambda x : x[1], reverse=True),1):
print("{}. {}: {}".format(i,k,v))
PRI NTS:
1. M: 1200
2. K: 1000
3. R: 600
4. T: 400
你可以試試這個:
d = {'K': 1000, 'M': 1200, 'R': 600, 'T': 400}
for i, (a, b) in enumerate(sorted(d.items(), key=lambda x:x[-1], reverse=True)):
print("{}. {}: {}".format(i+1, a, b))
輸出:
1. M: 1200
2. K: 1000
3. R: 600
4. T: 400
通過排序的值你循環S的(無論是用for循環或低於理解)並使用它們來訪問字典的值。
[print(i + ": " + str(d[i])) for i in s]
OUTPUT:
M: 1200
K: 1000
R: 600
T: 400
你可以做以下
#1 - Sort your keys first
In [54]: d_sorted = sorted(d,key=d.get,reverse=True)
#2 - Once done, use enumerate and use the value in your sorted list to get the
#value of your dictionary
In [55]: for i,r in enumerate(d_sorted):
print(str(i+1)+'.',r+':',d[r])
#results
1. M: 1200
2. K: 1000
3. R: 600
4. T: 400