gpt4 book ai didi

python - 列表连接真的比 python 中的字符串连接更快吗?

转载 作者:太空狗 更新时间:2023-10-30 01:43:43 28 4
gpt4 key购买 nike

我发现字符串连接似乎比列表连接具有更少的 python 字节码。

这是一个例子。

测试.py:

a = ''.join(['a', 'b', 'c'])
b = 'a' + 'b' + 'c'

然后我执行 python -m dis test.py。我得到了以下 python 字节码(python 2.7):

  1           0 LOAD_CONST               0 ('')              3 LOAD_ATTR                0 (join)              6 LOAD_CONST               1 ('a')              9 LOAD_CONST               2 ('b')             12 LOAD_CONST               3 ('c')             15 BUILD_LIST               3             18 CALL_FUNCTION            1             21 STORE_NAME               1 (a)  3          24 LOAD_CONST               6 ('abc')             27 STORE_NAME               2 (b)             30 LOAD_CONST               4 (None)             33 RETURN_VALUE  

很明显,字符串拼接的字节码个数较少,直接加载字符串'abc'就可以了。

谁能解释为什么我们总是说列表连接要好得多?

最佳答案

From Efficient String Concatenation in Python

方法 1:'a' + 'b' + 'c'

方法 6:a = ''.join(['a', 'b', 'c'])

20,000 个整数被连接成一个 86kb 长的字符串:

pic

                Concatenations per second     Process size (kB)
Method 1 3770 2424
Method 6 119,800 3000

结论:是的str.join() 比典型的连接(str1+str2)明显更快 ).

关于python - 列表连接真的比 python 中的字符串连接更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com