我想知道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)
答案 0 :(得分: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