我想要更新字典键,具有不同的值。我目前有一本这样的字典
{'Dog': 15, 'Cat': 9, 'Rat': 12}
我正在尝试更新值,使得具有最大值的键采用整数 1,然后具有第二大值的键采用整数 2,依此类推。我正在尝试将输出作为
{'Dog': 1, 'Cat': 3, 'Rat': 2}
这是我的代码如下:
values = [val for k, val in Animals.items()]
keys = [k for k in Animals]
n = len(values)
count = 1
k_index = 0
for i in range(n -1):
for j in range(0, n - i - 1):
if values[j] > values[j+1]:
key = keys[k_index]
key2 = keys[k_index + 1]
Animals[key], Animals[key] = count, (count + 1)
print(Animals)```
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下想法:
首先根据原始值创建和排序列表dict:
data = {'Dog': 15, 'Cat': 9, 'Rat': 12}
temp = sorted(data.items(), key=lambda x: x[1], reverse=True)
#[('Dog', 15), ('Rat', 12), ('Cat', 9)]
Run Code Online (Sandbox Code Playgroud)
然后使用该命令创建一个新的dict:
result = {item[0]: i + 1 for i,item in enumerate(temp)}
#{'Dog': 1, 'Rat': 2, 'Cat': 3}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |