ホームページ >バックエンド開発 >Python チュートリアル >Python で繰り返し項目の大きなリストを作成する最も効率的な方法は何ですか?

Python で繰り返し項目の大きなリストを作成する最も効率的な方法は何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-09 05:29:10495ブラウズ

What's the Most Efficient Way to Create Large Lists of Repeated Items in Python?

繰り返し項目のリストを効率的に作成する

Python では、繰り返し要素を含むリストを作成するのが一般的なタスクです。 1 つの方法は、リスト内包表記を使用することです (例: [範囲(n) の数値には e])。ただし、このアプローチは、特に大きなリストの場合、非効率的になる可能性があります。

代替アプローチ

代替方法は、itertools モジュールから Python の組み込みrepeatメソッドを使用することです。

itertools.repeat(e, n)

これは、オンデマンドで e の値を繰り返し生成するオブジェクトを作成します。リストを取得するには、単純に変換します。

list(itertools.repeat(e, n))

パフォーマンスに関する考慮事項

ただし、最初は、repeat の方がリストの乗算方法 ([e] * n) よりも高速に見える場合があります。 、具体的なリストではなくオブジェクトを作成します。リストを作成するには、変換する必要があります。

[e] * n

このアプローチでは、e の n 個のコピーで満たされたリストが直接作成されます。

パフォーマンス テスト

パフォーマンス テストにより、大規模なリストの場合、リストの乗算が大幅に増加することが明らかになりました。より高速:

## repeat()
timeit.timeit('itertools.repeat("foo", 1000000)', number=1000)
0.4600000247131665

## [e] * n
timeit.timeit('["foo"] * 1000000', number=1000)
0.19000002993464403

結論

繰り返し項目の大きなリストを作成するには、単一項目リスト ([e] * n) を乗算するのが最適な選択です。優れたパフォーマンスを実現します。

以上がPython で繰り返し項目の大きなリストを作成する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。