Это может быть немного быстрее:
def repeat(string, length):
L = len(string)
return string * (length // L) + string[:length % L]
Я говорю «может», потому что МНОГО зависит от типичных string
и length
! С 'Hello World'
и 61
я рассчитал это (на старом ноутбуке Mac) на 1 микросекунду против 1,66 микросекунды для вас; с 'Hello World'*100
и 61*123
, 2,08 микросекунды против 2,68 для вашего. Просто как быстро вам требуется, какой длины строки и для каких типичных значений length
?
Примечание //
- это «деление на усечение» (просто чтобы убедиться, что это работает как в Python 3, так и в Python 2 ;-), даже несмотря на то, что переполнение стека раскрашивает вещи, как если бы это был комментарий (как в C ++).