Forループの代わりにマップを使用する必要があるのはいつですか?

デレクリッツ:

これは以下に関連しています:(Pythonコード)

for i in object:
     doSomething(i)

map(doSomething, object)

どちらも理解しやすく、短いですが、速度に違いはありますか?ここで、doSomethingに戻り値がある場合、それを確認するためにマップからリストとして返されることを確認する必要があり、forループで独自のリストを作成するか、一度に1つずつ確認することができます。

for i in object:
     returnValue = doSomething(i)
     doSomethingWithReturnValue(returnValue)

returnValue = map(doSomething, object)
map(doSomethingWithReturnValue, returnValue)

さて、ふたりは少しずれている感じがします。2つのdoSomethingWithReturnValue関数は、ループを実行するときにオンザフライでそれらをチェックするか、最後に一度にすべてをチェックするかによって、結果が異なる場合とは異なる場合があります。また、forループは常に機能するようで、おそらく低速で、マップは特定のシナリオでのみ機能します。もちろん、どちらか一方を機能させるためにゆがみを作ることもできますが、肝心なのは、この種の機能を避けることです。

私が探しているのは、パフォーマンス、可読性、保守性、または実装の速度においてよく行われたforループと比較して、マッピング関数が本当に優れているシナリオです。答えが本当に大きな違いではない場合、実際に人々がどちらか一方をいつ使用するか、それが本当に完全に恣意的であり、機関に応じてコーディング標準によって設定されているかどうかを知りたいです。

ありがとう!

渡辺ラリー:

mapイテラブルのすべてのアイテムに関数を適用し、結果のリストを返したい場合に便利です。これは、forループを使用してリストを作成するよりも簡単で簡潔です。

for多くの場合、他の状況ではより読みやすく、lispでは、基本的にマクロとマップを使用して記述された多くの反復構成がありました。したがって、map適合しない場合はforループを使用します。

理論的には、複数のCPU /プロセッサを利用できるほどスマートなコンパイラ/インタープリタがあればmap、各項目の異なる操作を並行して実行できるため、より高速に実装できます。現時点ではそうではないと思います。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kotlinの演算子を使用する代わりに、プラス、マイナス、回の関数を使用する必要があるのはいつですか?

分類Dev

オブジェクトをラップする代わりにプリミティブを使用する必要があるのはいつですか?

分類Dev

オブジェクトの代わりにタプルを使用する必要があるのはいつですか。その逆も同様です。

分類Dev

SQL Server 2008で関数の代わりにストアドプロシージャを使用する必要があるのはいつですか?

分類Dev

メソッド内でローカル変数の代わりに最終変数を使用する必要があるのはいつですか

分類Dev

プロローグ-「= \ =」の代わりに「dif」を使用する必要があるのはなぜですか

分類Dev

番号を追加するときに「for」ループの代わりに何を使用する必要がありますか?

分類Dev

新しい例外の代わりにThrowableを使用する必要があるのはいつですか?

分類Dev

マルコフモデルの代わりにRNNを使用する必要があるのはなぜですか?

分類Dev

boolの代わりにatomic <bool>を本当に使用する必要があるのはいつですか?

分類Dev

UIButtonの代わりにanyObjectを迅速に使用する必要があるのはいつですか?

分類Dev

AngularでrouterLinkの代わりにhrefを使用する必要があるのはいつですか?

分類Dev

Z3で変数の代わりに関数を使用する必要があるのはいつですか?

分類Dev

@Serviceの代わりに@Componentを使用する必要があるのはいつですか?

分類Dev

JSONFieldの代わりにHStoreFieldを使用する必要があるのはいつですか?

分類Dev

items()の代わりにiteritems()を使用する必要があるのはいつですか?

分類Dev

クラスの代わりに構造体を使用する必要があるのはいつですか?

分類Dev

Memcachedの代わりにMemcacheを使用する必要があるのはいつですか?

分類Dev

クラスの代わりに構造体を使用する必要があるのはいつですか?

分類Dev

10進数の代わりにdoubleを使用する必要があるのはいつですか?

分類Dev

クラスの代わりに構造体を使用する必要があるのはいつですか?

分類Dev

GL_RGB8の代わりにGL_SRGB8を使用する必要があるのはいつですか?

分類Dev

std :: thread :: spawnの代わりにstd :: thread :: Builderを使用する必要があるのはいつですか?

分類Dev

os.popenの代わりにsubprocess.Popenを使用する必要があるのはいつですか?

分類Dev

React状態変数の代わりにMobXobservableを使用する必要があるのはいつですか?

分類Dev

ドメインの代わりに列挙型を使用する必要があるのはいつですか?

分類Dev

Swift:「let」の代わりに「var」を使用する必要があるのはいつですか?

分類Dev

関数スコープの代わりにブロックスコープを使用する必要があるのはなぜですか?

分類Dev

ミューテックスの代わりにスピンロックを使用する必要があるのはいつですか?

Related 関連記事

  1. 1

    Kotlinの演算子を使用する代わりに、プラス、マイナス、回の関数を使用する必要があるのはいつですか?

  2. 2

    オブジェクトをラップする代わりにプリミティブを使用する必要があるのはいつですか?

  3. 3

    オブジェクトの代わりにタプルを使用する必要があるのはいつですか。その逆も同様です。

  4. 4

    SQL Server 2008で関数の代わりにストアドプロシージャを使用する必要があるのはいつですか?

  5. 5

    メソッド内でローカル変数の代わりに最終変数を使用する必要があるのはいつですか

  6. 6

    プロローグ-「= \ =」の代わりに「dif」を使用する必要があるのはなぜですか

  7. 7

    番号を追加するときに「for」ループの代わりに何を使用する必要がありますか?

  8. 8

    新しい例外の代わりにThrowableを使用する必要があるのはいつですか?

  9. 9

    マルコフモデルの代わりにRNNを使用する必要があるのはなぜですか?

  10. 10

    boolの代わりにatomic <bool>を本当に使用する必要があるのはいつですか?

  11. 11

    UIButtonの代わりにanyObjectを迅速に使用する必要があるのはいつですか?

  12. 12

    AngularでrouterLinkの代わりにhrefを使用する必要があるのはいつですか?

  13. 13

    Z3で変数の代わりに関数を使用する必要があるのはいつですか?

  14. 14

    @Serviceの代わりに@Componentを使用する必要があるのはいつですか?

  15. 15

    JSONFieldの代わりにHStoreFieldを使用する必要があるのはいつですか?

  16. 16

    items()の代わりにiteritems()を使用する必要があるのはいつですか?

  17. 17

    クラスの代わりに構造体を使用する必要があるのはいつですか?

  18. 18

    Memcachedの代わりにMemcacheを使用する必要があるのはいつですか?

  19. 19

    クラスの代わりに構造体を使用する必要があるのはいつですか?

  20. 20

    10進数の代わりにdoubleを使用する必要があるのはいつですか?

  21. 21

    クラスの代わりに構造体を使用する必要があるのはいつですか?

  22. 22

    GL_RGB8の代わりにGL_SRGB8を使用する必要があるのはいつですか?

  23. 23

    std :: thread :: spawnの代わりにstd :: thread :: Builderを使用する必要があるのはいつですか?

  24. 24

    os.popenの代わりにsubprocess.Popenを使用する必要があるのはいつですか?

  25. 25

    React状態変数の代わりにMobXobservableを使用する必要があるのはいつですか?

  26. 26

    ドメインの代わりに列挙型を使用する必要があるのはいつですか?

  27. 27

    Swift:「let」の代わりに「var」を使用する必要があるのはいつですか?

  28. 28

    関数スコープの代わりにブロックスコープを使用する必要があるのはなぜですか?

  29. 29

    ミューテックスの代わりにスピンロックを使用する必要があるのはいつですか?

ホットタグ

アーカイブ