percent_frozen(points: list):
count = len(points)
if count > 0:
count_frozen = 0
for point in points:
if point.frozen:
count_frozen += 1
return round((count_frozen / count) * 100, 2)
return 0.00
По символам можно короче) Но ускорить вроде нельзя
Как? point это класс, там 1 поле frozen
Можно хоть и в одну строку, но код станет нечитаемым
Как по символам короче сделать? Например так, но оно будет на порядок медленней
Надо чтоб было быстро и без аллокаций
Это уже тестировать нужно будет, но быстрее в любом случае можно сделать
Это ты не в тот язык зашёл, если имеешь ввиду чтобы оно было в стеке
Ага, норм реализация, надо тестить. А вообще кажется что медленно, потому что создаётся tuple
Нет, но примерно понимаю, что можно сделать
Ну просто это горячая функция, вызывается каждый кадр, поэтому решил её сделать быстрой настолько, насколько можно
Так можно и кодец написать)
Тогда попробуй импортировать её из плюсов
sum(bool(point.frozen) for point in points)/len(points) Но по сути то же самое
😱 так, sum в итоге просуммирует bool? Или bool к int приведётся?
Обсуждают сегодня