Pythonでは、変数の最大サイズはプラットフォームのPy_ssize_t
型がサポートする最大の正の整数であり、これはリスト、文字列、辞書などの多くのコンテナが持つことができる最大サイズです。
具体的には、64ビットのCPythonをビルドしたMacBook Proでは、sys.maxsize
は2^63 -1バイトとなります。一方、32ビットのLinuxボックスでは、sys.maxsize
は2^31 -1となります。
しかし、実際には、このような大きなオブジェクトを実際に使用することはほとんどなく、理論的な制限に達する前に、メモリ不足になったり、オブジェクトのロード/保存に時間がかかったりといった実際的な問題に直面することが多いです。
Python 3では、この質問は適用されません。プレーンなint
型は無制限です。ただし、現在のインタープリタのワードサイズについての情報を探している可能性があります。その情報は、Python 3でもsys.maxsize
として利用可能で、これはプラットフォームの符号付きワードで表現できる最大値です。同様に、符号なしのワードで表現できる最大値は通常、sys.maxsize * 2 + 1
となり、ワードのビット数はmath.log2 (sys.maxsize * 2 + 2)
となります。
以上の情報から、Pythonの変数の最大サイズは、プラットフォームやPythonのバージョンによって異なることがわかります。これは、Pythonのメモリ管理とデータ型の柔軟性を示しています。