DBまたはスプレッドシートのデータをカンマ区切りの形式で含む文字列があるとします。例えばPythonのコンマ区切り文字列から特定のフィールドのみを抽出する最速の方法
:
data = "hello,how,are,you,232.3354,good morning"
は、これらの "記録" で200個のフィールドが多分あると仮定します。
私はこのレコードの特定のフィールドだけを調べることに興味があります。 Pythonの最も速い方法は何ですか?
最も簡単な方法は、ようなものになるだろう:
- はあなただけでリストを割り当てる必要があります。
fields = data.split(",") result = [fields[4], fields[12], fields[123]]
という事実を利用して、これを行うにはそこより高速な方法です3つの要素と3つの文字列オブジェクトを結果として返します。
- あなたは、フィールド123
に達すると、私は渡されたカンマをスキップするように見つけるために、繰り返し呼び出しを使用して、いくつかのコードを記述することを試みたが、最後のフィールドが、これは文字列の下遠すぎる場合は、データ列のスキャンを停止することができます基本分割ソリューションよりも遅くなります。
私は数百万のレコードを処理していますので、スピードアップを歓迎します。 result
ではなく、リストのtuple
することができ
ネイティブの 'str.split()'をPythonソリューションで解決するのは難しいでしょう。 –
私はそれが速いかどうか分かりませんが、文字列全体を 'data.split("、 "、124)'で分割するのを避けることができます。 – chepner
アプリケーションでボトルネックになっていると確信していますか?あなたのアプリのどこかにボトルネックをシフトさせるにはどれくらい早く必要ですか? – jfs