为什么Python内置的str join()方法并不比简单的+=更快?

问题描述 投票:0回答:1
binary_str= np.random.randint(2,size=1000000,dtype='int')

方法一:

binary_str=''.join(binary_str.astype(str))

方法2:

s=''
for c in binary_str:
    s+=str(c)

我读过很多文章说方法 1 应该要快得多,因为它连接了整个字符串一次。相比之下,方法 2 必须为每个步骤分配内存和复制,这导致时间复杂度为 O(n^2)。 但是当我测量 time.time 或 timeit 所消耗的时间时,两种方法的输出几乎相同,并且方法 1 甚至消耗了更多时间。为什么? Python 版本 3.10.4.

python performance
1个回答
0
投票

我在本地机器上进行了测试,两种方法所花费的时间有显着差异。

join
方法比
+=
方法更省时。

我的Python版本:3.9.13

© www.soinside.com 2019 - 2024. All rights reserved.