通常、1000000000 まで繰り返す必要がある場合は、もっと良い方法があります。たとえば、いくつかの数学的プロパティを使用して、すべての数値のテストを回避できます。
samplelist = [x**2 for x in range(int(1000000000**0.5))] # get all perfect squares up to 1000000000
Python は、数値演算に関してそれほど高速ではありません。したがって、1000000000 まで反復し、反復ごとに何かを実行すると遅くなります。これを回避するには、より高速なインタープリター (PyPy など) を試すか、C などのよりパフォーマンスの高い言語でコードを記述します。
または、膨大な数の要素をリストに追加する場合は、代わりにジェネレーターの使用を検討してください。これにより、大量のリストを作成するオーバーヘッドが回避されますが、多くのことに役立ちます。
def gen_numbers(n):
for i in range(n):
if <i passes test>:
yield i
for i in gen_numbers(1000000000):
print(i)