Python字符串实习

Python字符串实习

虽然这个问题在实践中没有任何实际用途,但我很好奇Python是如何进行字符串实习的。我注意到了以下几点。

>> "string" is "string">> True

如我所料。

你也可以这么做。

>> "strin"+"g" is "string">> True

这真是太聪明了!

但你不能这么做。

>> s1 = "strin">> s2 = "string">> s1+"g" is s2>> False

为什么Python不能评估s1+"g",并意识到这与s1把它指向同一个地址?最后一个街区到底是怎么回事?False?


哔哔one
浏览 390回答 3
3回答

翻阅古今

它需要将新字符串与所有现有字符串进行比较;这可能是一个非常昂贵的操作。我想,在作业结束后,它可以在后台这样做,以减少内存,但这样的话,你甚至会有更奇怪的行为:id(x) != id(x)例如,因为字符串是在计算过程中移动的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python