今天在写脚本过程中需要将大量字符存入python字符串,遂好奇python的字符串是否有长度限制。
经查询文档未发现提及长度限制,后来在stackoverflow找到了相关讨论:
原文链接:link
大意为无环境限制下python的string中存储极限字符数量是多少,其中一位网友进行了实验,以下为相关代码:
def create1k():
s = ""
for i in range(1024):
s += '*'
return s
def create1m():
s = ""
x = create1k()
for i in range(1024):
s += x
return s
def create1g():
s = ""
x = create1m()
for i in range(1024):
s += x
return s
print("begin")
s = ""
x = create1g()
for i in range(1024):
s += x
print(str(i) + "g ok")
print(str(len(s)) + ' bytes')
测试结果:在使用了116G内存后报内存错误。
结论:python本身对string长度无强制性限制。使用过程中主要需要考虑电脑性能和程序效率。