Python字符乘法或列表乘法

Python字符乘法或列表乘法,python,Python,假设我有上面的两个变量。只是想知道哪一个更有效或者更适合使用 谢谢 第一个显然是更好的练习——它更清楚地表达了你的实际意图 让我们使用ipython的%timeit函数来找出哪个更有效: a1 = 'a'*5 a2 = ''.join(['a']*5) 因此,在我的机器上,第一个速度快了20倍多。当然,你的结果可能会有所不同 克劳斯的私人秘书a1='aaaaa'可能是最好的选择。无论如何,我会选择第一个: 禅3:简单胜于复杂 没有额外列表包装器和方法调用的一个。Re您的p.s.:是的,如果您在

假设我有上面的两个变量。只是想知道哪一个更有效或者更适合使用


谢谢

第一个显然是更好的练习——它更清楚地表达了你的实际意图

让我们使用
ipython
%timeit
函数来找出哪个更有效:

a1 = 'a'*5
a2 = ''.join(['a']*5)
因此,在我的机器上,第一个速度快了20倍多。当然,你的结果可能会有所不同


克劳斯的私人秘书
a1='aaaaa'
可能是最好的选择。

无论如何,我会选择第一个:

禅3:简单胜于复杂


没有额外列表包装器和方法调用的一个。Re您的p.s.:是的,如果您在编写程序时知道
a
的数量…绝对同意此答案的信息。除非代码部分对性能至关重要,否则请坚持使用最简单的表达式,即使它可能稍微慢一点。然而,在这种情况下,第二种方法是不必要的复杂和缓慢。
In [1]: %timeit a1 = 'a'*5
10000000 loops, best of 3: 14.6 ns per loop

In [2]: %timeit a1 = ''.join(['a']*5)
1000000 loops, best of 3: 326 ns per loop

In [3]: 326/14.6
Out[3]: 22.328767123287673