我有一个类似的字典:
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替换字典中的值。
我该怎么做?
答案 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()}