У меня есть словарь, который выглядит так:
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]
Я хочу заменить значения в словаре новыми значениями.
Как я могу это сделать?
2 ответа
Попробуйте использовать словарное понимание.
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}
Во-первых, вы, вероятно, не хотите вычислять max(count_values)
снова и снова для каждого элемента, поэтому сделайте это один раз заранее:
max_value = max(count.values())
Теперь, если вам действительно нужно изменить диктовку на месте, сделайте это следующим образом:
for key in count:
count[key] /= max_value
Однако, если вам это не нужно, обычно проще создать новый диктант через понимание, как в отличном ответе Халимура Али:
count = {key: value / max_value for key, value in count.items()}
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.