此外,如果原始字典只有一個值,則得分為 1。例如,一個如下所示的字典:
{
'q1': ['d184', 'd29', 'd879', 'd880'],
'q2': ['d12', 'd15', 'd658'],
'q3': ['d10']
}
會變成如下:
{
'q1': [5, 4, 3, 2],
'q2': [4, 3, 2],
'q3': [1]
}
這是具有 2 個鍵的字典的開始,不包括 1 值情況:
dct = {
'q1': ['d184', 'd29', 'd879', 'd880'],
'q2': ['d12', 'd15', 'd658']
}
new_dict = {}
new_values = []
for key in dct.keys():
length = len(dct[key])
values = []
for num in range(length 2):
values.append(num)
sort_ed = sorted(values, key=int, reverse=True)[:-2]
new_values.append(sort_ed)
print(new_values)
[[5, 4, 3, 2], [4, 3, 2]]
這就是我想要的值,現在我只需要將新字典的鍵設定為原始字典的鍵,然后從new_values
.
uj5u.com熱心網友回復:
這是一個解決方案,range
用于對元素進行排名
from collections import defaultdict
d = {
'q1': ['d184', 'd29', 'd879', 'd880'],
'q2': ['d12', 'd15', 'd658'],
'q3': ['d10']
}
ranks_ = defaultdict(list)
for k, v in d.items():
rank_inc = bool(len(v) > 1) # If length of list is > 1 decrement by 1
for i in range(len(v), 0, -1):
ranks_[k].append(i rank_inc)
print(ranks_)
defaultdict(<class 'list'>, {'q1': [5, 4, 3, 2], 'q2': [4, 3, 2], 'q3': [1]})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504910.html
上一篇:如何將平面串列轉換為嵌套字典
下一篇:用它的值替換一個句子中的鍵