1000万のオブジェクトを含むリストがある場合、リストを素早くフィルタリングするにはどうすればいいですか?リストの理解を通じた完全な反復には約4〜5秒かかります。これのための効率的なデータ構造やライブラリはありますか?または、Pythonは大量のデータセットには適していませんか?非常に大きなリストのPythonでのフィルタリング/反復
答えて
Itertoolsは効率的なループ処理を行うように設計されています。特に、あなたの目的に合ったifilter
が見つかるかもしれません。大規模なデータ構造を反復することは常にコストがかかりますが、一度にいくつかのデータが必要な場合は、遅延評価が大いに役立ちます。
ジェネレータ式は、通常はリストの理解度と同じですが(使用法は異なるかもしれませんが)、ジェネレータも使用できます(遅延評価の利点もあります)。
均一なタイプの数字がある場合は、&スピードが主な目標である場合(そしてPythonを使用する場合)は、Numpy配列を使用します。
彼のオブジェクトが数字であることはどうやってわかるのですか? –
私はしません。私は私の答えを修飾します。 – Gerrat
非常にプリミティブな整数配列の組み込み関数を使用しても、コンピュータで評価するのに数秒かかります。
>>> l=[1]*10000000
>>> s=filter(lambda x:True,l)
は、私は、このようなgeneratorsとNumpyまたは遅延評価を使用して、および/または反復モジュールitertools
これは整数配列ではなく、プリミティブではありません。これは、プリミティブ配列ではないO(1)のパフォーマンスを与える、 'append'や' extend'のようなさまざまな最適化された操作を持つサイズ変更可能な、異種のリストです。実際、 'numpy'配列は、Pythonリストよりもプリミティブな整数配列に近いものです。 Python 3では 'filter'はすでに怠惰です。 –
- 1. Pythonの非常に大きなブールリスト
- 2. 非常に大きなPythonスクリプト
- 3. Pythonリスト、反復
- 4. 大きなファイルの非同期反復のためのジェネレータ
- 5. リストのPython反復減算
- 6. pythonリスト反復でブール値
- 7. Pythonで非常に大きなcsvファイルのインデックスを作成
- 8. 非常に大きなタイムスタンプ
- 9. C反復までの非常に大きな数に - コンパイラはに関する警告unsigned int型
- 10. PLSQLでは、非常に大きなテーブルのフィールドを反復的に更新しますか?
- 11. Pythonのリストでペアを反復処理し、反復
- 12. Pythonでの多層リストの反復
- 13. Pythonの非常に大きなフロートのフロア
- 14. vb.netで非常に、非常に大きな数字
- 15. openpyxl pythonで非常に大きなファイルを扱う
- 16. 非常に大きなnetCDFファイルをPythonで扱う
- 17. Pythonで非常に大きな値を扱う/表示する
- 18. 非常に大きなxlsxファイルをPythonで読む
- 19. のJava - 非常に大きな数(600851475143)
- 20. Python:リストを反復する
- 21. javascriptでリストを反復できない
- 22. 非常に大きなリストを操作する方法
- 23. Pythonの文字列のリストの反復
- 24. Pythonのリスト複数の反復
- 25. Python - ネストされたリストの反復
- 26. 反復処理がJSONリスト上のPython
- 27. クラスのリストを反復するPythonラッパー
- 28. PythonのYAMLリストを反復する
- 29. Python - スレッドスクリプトでリストを反復する
- 30. 非常に大きなファイルを解析するPython json
なぜそれがリストであるを使用して別のアプローチを使用して、あなたをお勧めしたいですか?他にも選択肢があります。いくつかの種類のマッピングは、フラットリストよりもはるかにスマートです。あなたの**本当の**問題は何ですか? –
またはフィルタリング機能が遅いですか? –