将字符串重复到一定长度的有效方法是什么?例如:repeat('abc', 7) -> 'abcabca'
这是我目前的代码:
def repeat(string, length):
cur, old = 1, string
while len(string) < length:
string += old[cur-1]
cur = (cur+1)%len(old)
return string
Run Code Online (Sandbox Code Playgroud)
有没有更好的(更pythonic)方式来做到这一点?也许使用列表理解?
所以我从官方文档中得到了这些例子. https://docs.python.org/2/library/timeit.html
究竟是什么让第一个例子(生成器表达式)比第二个(列表理解)慢?
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.8187260627746582
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.7288308143615723
Run Code Online (Sandbox Code Playgroud)