如何用新值替换dict值

时间:2018-03-14 04:37:31

标签: python dictionary

我有一个类似的字典:

the 117
to 77
. 77
, 56
a 47
is 46
and 41
that 39
...

我想将字典中的每个数字除以最大值..所以我这样做了:

count_values = (count.values())
newValues = [x / max(count_values) for x in count_values]

我想用newValues替换字典中的值。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

尝试使用词典理解。

old_values = {'the': 117, 'to': 77, '.': 77, ',': 56, 'a': 46, 'is': 46, 'and': 41, 'that': 39}
m = max(old_values.values())
new_values = {k: v / m for k, v in old_values.items()}

这会生成如下字典:

{'the': 1.0, 
 'to': 0.6581196581196581, 
 '.': 0.6581196581196581, 
 ',': 0.47863247863247865, 
 'a': 0.39316239316239315, 
 'is': 0.39316239316239315, 
 'and': 0.3504273504273504, 
 'that': 0.3333333333333333}

答案 1 :(得分:0)

首先,您可能不希望为每个元素反复计算max(count_values),所以请事先做到这一点:

max_value = max(count.values())

现在,如果您确实需要就地修改dict,请执行以下操作:

for key in count:
   count[key] /= max_value

但是,如果您不需要这样做,通过理解来制作新词典通常更为清晰,如Haleemur Ali's great answer

count = {key: value / max_value for key, value in count.items()}