sjaserds
@sjaserds
Студент

Как перебрать числа если сократили дробь?

Всем доброе утро, из за недостаточных знаний в области математике не могу решить задачку.
Дан массив массивов. Функции необходимо при значении входного параметра t сократить массив следующим образом.

mass = [
[34.224, 51],
[34.226, 1],
[34.227, 32],
[34.234, 521],
[34.236, 5],
[34.247, 24],
[34.248, 334],
[34.274, 1],
[34.274, 22],
[34.290, 321],
[34.292, 51],
[34.299, 34]
]

t = 0.01
Необходимо перебрать массив и сократить mass[i][0] до сотых без округления, далее сложить одинаковые значения.
Результат должен быть таким:
new_mass = [
[34.22, 84],
[34.23, 526],
[34.24, 358],
[34.27, 23],
[34.29, 406],
]

Также при t = 0.1 функция сокращала до десятых.
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
судя по всему как и знаний питона
from collections import defaultdict

t = 0.01
mass = [
    [34.224, 51],
    [34.226, 1],
    [34.227, 32],
    [34.234, 521],
    [34.236, 5],
    [34.247, 24],
    [34.248, 334],
    [34.274, 1],
    [34.274, 22],
    [34.290, 321],
    [34.292, 51],
    [34.299, 34]
]

d = defaultdict(int)

for key, value in mass:
    d[int(key / t)] += value

print([[f'{k * t:.2f}', v] for k, v in d.items()])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы