私はリスト内包表記に愛憎関係があります。一方では、私は彼らがきちんとしていてエレガントだと思います. 一方、私はそれらを読むのが嫌いです。(特に私が書いていないもの) 私は通常、速度が必要になるまで読みやすいようにするというルールに従います。したがって、私の質問は現時点では本当に学術的です。
文字列に余分なスペースが含まれていることが多いテーブルからステーションのリストが必要です。それらのスペースを取り除く必要があります。場合によっては、これらのステーションが空白であり、含めるべきではありません。
stations = []
for row in data:
if row.strip():
stations.append(row.strip())
これは、次のリスト内包表記に変換されます。
stations = [row.strip() for row in data if row.strip()]
これは十分に機能しますが、私はストリップを 2 回行っていることに気付きました。.strip() は実際には 2 回必要ではなく、変数を割り当てるだけよりも一般的に遅いと思いました。
stations = []
for row in data:
blah = row.strip()
if blah:
stations.append(blah)
私が正しかったことがわかりました。
> Striptwice list comp 14.5714301669
> Striptwice loop 17.9919670399
> Striponce loop 13.0950567955
2 つのループ セグメント間の時間は、2 番目 (1 回ストリップ) の方が高速です。ここで本当の驚きはありません。ストリップを 2 回実行しているにもかかわらず、リストの理解がわずかに遅いだけであることに驚いています。
私の質問:ストリップを 1 回だけ行うリスト内包表記を作成する方法はありますか?
結果:
提案のタイミング結果は次のとおりです
# @JonClements & @ErikAllik
> Striptonce list comp 10.7998494348
# @adhie
> Mapmethod loop 14.4501044569