@Suetop

Как посчитать пройденную дистанцию с помощью map()?

У меня есть функция для расчета distance и список передвижений self._movements:
** функция distance:
@property
    def distance(self) -> float:
        return math.sqrt(self.x**2 + self.y**2)

** допустим self._movements = [(2, 1), (2, 2)]
Мне необходимо посчитать общую пройденную дистанцию, используя функцию distance в другом классе. Я пишу следующее решение, которое работает:
@property
    def distance_traveled(self) -> float:
        return Movement(self._movements[0][0], self._movements[0][1]).distance + \
               Movement(self._movements[1][0], self._movements[1][1]).distance

Но код очень примитивен и не рассчитан на изменение списка.
Как можно в return промапить список мувментов и вернуть новый список дистанций?
Спасибо!
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Ваш код можно сделать чуточку яснее вот так:
def distance_traveled(self) -> float:
    return Movement(*self._movements[0]).distance + Movement(*self._movements[1]).distance

А то, что вы хотите можно можно сделать так:
return sum(Movement(*step).distance for step in self._movements)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы