python セットを mysql テーブルの ID のフィルターとして使用しようとしています。Python セットには、フィルタリングするすべての ID が格納されています (現在は約 30,000)。この数は時間の経過とともにゆっくりと増加するため、Python セットの最大容量が心配です。含まれる要素の数に制限はありますか?
2296 次
2 に答える
9
最大の制約は、コンピューターのメモリ量です。次の行を試してください。
s = set(xrange(10000000))
これにより、例として挙げた 30,000 よりもはるかに大きい、長さ 1000 万のセットが作成されます。私のコンピューター (4 GB のメモリを搭載した Macbook Air) では、これはわずか数秒で実行されます。どのようなシステムであっても、同じように制約を受けない可能性があります。
もちろん、絶対に上限があり、そのずっと前に、衝突の数と必要なメモリ スワッピングのために、セットの速度が低下し始めます。したがって、このセットがどれだけ大きくなるかが重要です。1,000 万を超えるアイテムを操作する場合は、代わりにデータベースを使用することを検討してください。
于 2013-01-29T07:37:08.763 に答える
0
セット内のアイテムの数に任意の制限があるかどうかはわかりません。おそらく、制限は使用可能なメモリに関連付けられています。
于 2013-01-29T07:34:01.203 に答える