小编vys*_*ond的帖子

计算python字符串的实际大小

首先这是我的电脑规格:

内存 - https://gist.github.com/vyscond/6425304

CPU - https://gist.github.com/vyscond/6425322

所以今天早上我测试了以下2个代码片段:

代码A.

a = 'a' * 1000000000
Run Code Online (Sandbox Code Playgroud)

和代码B.

a = 'a' * 10000000000
Run Code Online (Sandbox Code Playgroud)

代码A工作正常.但是代码B给了我一些错误信息:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError
Run Code Online (Sandbox Code Playgroud)

所以我开始研究测量python数据大小的方法.

我发现的第一件事是经典的内置功能len().

代码函数len()返回值1000000000,但对于代码B,返回相同的内存错误.

在此之后,我决定在这些测试中获得更高的精度.所以我从sys模块中找到了一个函数getsizeof().使用此功能,我对代码A进行了相同的测试:

sys.getsizeof( 'a' * 1000000000 )
Run Code Online (Sandbox Code Playgroud)

结果返回1000000037(以字节为单位)

  • 问题1 - 这意味着0.9313226090744千兆字节?

所以我用一个字符检查了一个字符串的字节数 'a'

sys.getsizeof( 'a' )
Run Code Online (Sandbox Code Playgroud)

结果返回38(以字节为单位)

  • 问题02 - 这意味着如果我们需要一个由1000000000字符组成的字符串,'a'这将导致38*1000000000 = 38.000.000.000字节?

  • 问题03 - 这意味着我们需要一个35.390257835388千兆字节来保存这样的字符串? …

python string size python-2.7

0
推荐指数
1
解决办法
2242
查看次数

标签 统计

python ×1

python-2.7 ×1

size ×1

string ×1