可能重复:
python实习生做什么,什么时候应该使用它?
我正在使用 python 中的一个程序,该程序必须与具有数百万个字符串对象的数组相关联。我发现如果它们都来自同一个带引号的字符串,那么每个附加的“字符串”只是对第一个主字符串的引用。但是,如果从文件中读取字符串,并且字符串都相等,则每个字符串仍需要新的内存分配。
也就是说,这需要大约 14meg 的存储空间:
a = ["foo" for a in range(0,1000000)]
虽然这需要超过 65meg 的存储空间:
a = ["foo".replace("o","1") for a in range(0,1000000)]
现在我可以用这个来减少内存占用的空间:
s = {"f11":"f11"}
a = [s["foo".replace("o","1")] for a in range(0,1000000)]
但这似乎很愚蠢。有没有更简单的方法来做到这一点?