配列上で数百万の文字列オブジェクトと相関させる必要のあるPythonのプログラムを使用しています。それらがすべて同じ引用符で囲まれた文字列からのものである場合、追加の「文字列」はそれぞれ、最初のマスター文字列への参照にすぎないことを発見しました。ただし、文字列がファイルから読み取られ、文字列がすべて等しい場合でも、それぞれに新しいメモリ割り当てが必要です。
つまり、これには約14メガのストレージが必要です。
a = ["foo" for a in range(0,1000000)]
これには65メガ以上のストレージが必要ですが:
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)]
しかし、それはばかげているようです。これを行う簡単な方法はありますか?