我试图理解Python字符串何时相同(也就是共享相同的内存位置).但是在我的测试中,当两个相等的字符串变量共享相同的内存时似乎没有明显的解释:
import sys
print(sys.version) # 3.4.3
# Example 1
s1 = "Hello"
s2 = "Hello"
print(id(s1) == id(s2)) # True
# Example 2
s1 = "Hello" * 3
s2 = "Hello" * 3
print(id(s1) == id(s2)) # True
# Example 3
i = 3
s1 = "Hello" * i
s2 = "Hello" * i
print(id(s1) == id(s2)) # False
# Example 4
s1 = "HelloHelloHelloHelloHello"
s2 = "HelloHelloHelloHelloHello"
print(id(s1) == id(s2)) # True
# Example 5
s1 = "Hello" * …Run Code Online (Sandbox Code Playgroud) 我想知道在 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)