是否可以根据python3中的某个条件更新字典?

Cro*_*twe 1 python dictionary

我想要更新字典键,具有不同的值。我目前有一本这样的字典

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

Exp*_*ish 5

您可以尝试以下想法:

首先根据原始值创建和排序列表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)