У меня есть часть кода, которая возьмет строку и повторит ее так, что длина строки равна x.Оптимизация: Повторение строки Python
>>> import math
>>> def repeat(data, length):
return (data * int(math.ceil(float(length)/len(data))))[:length]
>>> repeat("Hello World", 22)
'Hello WorldHello World'
>>> repeat("Hello World", 20)
'Hello WorldHello Wor'
Есть ли способ его оптимизации? Мне нужна эта операция, чтобы быть быстрой, так как она будет использоваться много. Обратите внимание, что это также необходимо для работы со списками.
Просто интересно. Вы действительно подтвердили, что 'repeat (« Hello World », 22)' быстрее, чем «Hello World» * 22' – Wolph
@WoLpH: Он решает немного другую проблему. Он хочет, чтобы «Hello World» (или любая строка) повторялся столько раз, сколько необходимо, но не превышал N символов в длину. Не то же самое, что 'string * n'. –
@Brian: действительно, в этом случае мой вопрос недействителен :) Я не вижу возможности оптимизировать это гораздо дальше. Простого сравнения должно быть достаточно. – Wolph