我想知道在 python 中创建一个空字符串以稍后附加更多字符串的最快方法是什么。然而,我发现,有趣的是它的方式更快地通过初始化字符串""比str()。有人可以对此有所了解吗?我猜 str() 只是带来了很多开销,例如类型检查等。
这是我尝试过的:
%timeit ""+"a"
7.63 ns ± 0.0376 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)
%timeit str()+"a"
58.2 ns ± 0.253 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
Run Code Online (Sandbox Code Playgroud)
Bor*_*ris 11
因为调用函数需要查找该函数并调用它。"" + "a"只能解释为"a"。使用dis:
>>> import dis
>>> dis.dis("str() + 'a'")
1 0 LOAD_NAME 0 (str)
2 CALL_FUNCTION 0
4 LOAD_CONST 0 ('a')
6 BINARY_ADD
8 RETURN_VALUE
>>> dis.dis("'' + 'a'")
1 0 LOAD_CONST 0 ('a')
2 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)