您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python如何存储字符串,以便’is’运算符可以处理文字?

5b51 2022/1/14 8:21:54 python 字数 1875 阅读 492 来源 www.jb51.cc/python

在python中>>> a = 5 >>> a is 5 True 但>>> a = 500 >>> a is 500 False 这是因为它将低整数存储为单个地址.但是一旦数字开始变得复杂,每个int都会获得自己唯一的地址空间.这对我来说很有意义. The current impl

概述

python

>>> a = 5
>>> a is 5
True

>>> a = 500
>>> a is 500
False

这是因为它将低整数存储为单个地址.但是一旦数字开始变得复杂,每个int都会获得自己唯一的地址空间.这对我来说很有意义.

The current implementation keeps an array of integer objects for all integers between -5 and 256,when you create an int in that range you actually just get back a reference to the existing object.

所以现在,为什么这不适用于字符串?字符串是不是像大整数一样复杂(如果不是更多)?

>>> a = '1234567'
>>> a is '1234567'
True

python如何有效地为所有字符串文字使用相同的地址?它不能像数字一样保留每个可能字符串的数组.

例如

当你说a =’foo’时,它首先散列字符串foo并检查哈希表中是否已经存在一个条目.如果是,则变量a现在引用该地址.

如果表中没有找到任何条目,python会分配内存来存储字符串,哈希foo并在表中添加一个条目,其中包含已分配内存的地址.

看到:

> How is the ‘is’ keyword implemented in Python?
> https://en.wikipedia.org/wiki/String_interning

总结

以上是编程之家为你收集整理的python如何存储字符串,以便’is’运算符可以处理文字?全部内容,希望文章能够帮你解决python如何存储字符串,以便’is’运算符可以处理文字?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶