gpt4 book ai didi

python - 有什么理由不使用 '+' 连接两个字符串?

转载 作者:IT老高 更新时间:2023-10-28 21:05:25 24 4
gpt4 key购买 nike

Python 中一个常见的反模式是在循环中使用 + 连接字符串序列。这很糟糕,因为 Python 解释器必须为每次迭代创建一个新的字符串对象,并且最终会花费二次时间。 (最近的 CPython 版本在某些情况下显然可以对此进行优化,但其他实现则不能,因此不鼓励程序员依赖它。) ''.join 是做到这一点的正确方法。

但是,我听说 (including here on Stack Overflow) 你应该永远不要使用 + 进行字符串连接,而应该始终使用 ' '.join 或格式字符串。如果您只连接两个字符串,我不明白为什么会出现这种情况。如果我的理解是正确的,它不应该花费二次时间,而且我认为 a + b 比任何一个 ''.join((a, b)) 更干净,更具可读性code> 或 '%s%s' % (a, b).

使用 + 连接两个字符串是一种好习惯吗?还是有我不知道的问题?

最佳答案

+ 连接两个 字符串并没有错。实际上它比 ''.join([a, b]).

更容易阅读

你是对的,虽然用 + 连接两个以上的字符串是一个 O(n^2) 操作(与 join 的 O(n) 相比),因此变得低效。然而,这与使用循环无关。甚至 a + b + c + ... 也是 O(n^2),原因是每个连接都会产生一个新字符串。

CPython2.4 及更高版本试图缓解这种情况,但在连接超过 2 个字符串时仍然建议使用 join

关于python - 有什么理由不使用 '+' 连接两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10043636/

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