any()がinよりもはるかに高速なのはなぜですか?

ARMATAV

https://repl.it/@ArmanTavakoli/List-Comprehension-vs-Any

彼らが本質的に同じことをしているanyのに、なぜ私のチェックは私のチェックよりもはるかに速いのinですか?

from timeit import default_timer as timer
import random

input = [random.randint(0, 100) for x in range(0, 1000000)]

def any_check(input):
  return any(i == 1 for i in input)

def list_comprehension(input):
  return 1 in [num for num in input]

first_start = timer()
any_check(input)
first_end = timer()
print('any_check', first_end - first_start)

second_start = timer()
list_comprehension(input)
second_end = timer()
print('list_comprehension', second_end - second_start)

関数をそれぞれ3回実行した結果。

# Calculated with 3 runs each
# Ratio is list_comprehension:any_check

# 10,000 - Mean Ratio: 17.87
# Example run;
# any_check 1.5022000297904015e-05
# list_comprehension 0.00038980199315119535

# 100,000 - Mean Ratio: 140.76
# any_check 2.020499960053712e-05
# list_comprehension 0.0035961729954578914

# 1,000,000 - Mean Ratio: 3379.81
# any_check 2.2904998331796378e-05
# list_comprehension 0.08528400499926647
Blckknght

コメントで指摘されているように、inテストを実行anyする関数が使用するバージョンよりも遅い理由は、その関数には、オペレーターが一致を探し始める前に入力全体を反復する必要がある不要なリスト内包表記含まれinているためです。リストで実行すると、inanyが短絡する可能性があり、検索の早い段階で一致する値が見つかった場合は早期に終了します。ただし、2番目の関数のリスト内包表記は1、最初に権利があったとしても、常に入力全体を繰り返し処理します。

あなたが交換した場合1 in [num for num in input]1 in input、あなたは良いとしても、より良い使用して、機能よりもパフォーマンスを参照してくださいねanyinputリストの場合、パフォーマンスはかなり似ていますが、他のコンテナタイプ(setsやrangesなど)の場合ははるかに高速になる可能性があります

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

配列がArrayListよりもはるかに高速なのはなぜですか?

分類Dev

C#での計算がPythonよりもはるかに高速なのはなぜですか

分類Dev

この場合、「sed」が「awk」よりもはるかに高速でないのはなぜですか

分類Dev

ifstream :: readがイテレータを使用するよりもはるかに高速なのはなぜですか?

分類Dev

PythonのこのコードがC ++よりもはるかに高速なのはなぜですか?

分類Dev

同じ目的で使用した場合、.html()が.text()よりもはるかに高速なのはなぜですか?

分類Dev

ターミナルでMacVimがVimよりもはるかに高速なのはなぜですか?

分類Dev

Eigensのmean()メソッドがsum()よりもはるかに高速なのはなぜですか?

分類Dev

文字列:indexOfがcontainsよりも大幅に高速なのはなぜですか?

分類Dev

str.strip()がstr.strip( '')よりもはるかに高速なのはなぜですか?

分類Dev

numpy.ndarray.Tがnumpy.transpose(numpy.ndarray)よりもはるかに高速なのはなぜですか?

分類Dev

rand()がarc4random()よりもはるかに高速なのはなぜですか?

分類Dev

pandas.grouby.meanが並列実装よりもはるかに高速なのはなぜですか

分類Dev

サブクエリ結合が直接結合よりもはるかに高速なのはなぜですか

分類Dev

memcmpがforループチェックよりもはるかに高速なのはなぜですか?

分類Dev

fio seq_writesがddよりもはるかに高速なのはなぜですか?

分類Dev

SSHがHTTPよりもはるかに高速であると感じるのはなぜですか?

分類Dev

test1()がtest2()よりもはるかに高速に実行されるのはなぜですか?

分類Dev

SSRがSPAよりも高速であるのはなぜですか?

分類Dev

代わりに、CPUがGPUよりも高速に行列演算を実行するのはなぜですか?

分類Dev

iperf TCPはUDPよりもはるかに高速です。なぜですか?

分類Dev

COPYはどのように機能し、なぜINSERTよりもはるかに高速なのですか?

分類Dev

「dd」をgzip経由で直接コピーするよりもはるかに高速なのはなぜですか?

分類Dev

この操作がGPUよりもCPUで高速に実行されるのはなぜですか?

分類Dev

このコードでCPUがGPUよりも高速に実行されるのはなぜですか?

分類Dev

この場合、PythonがC ++よりも高速なのはなぜですか?

分類Dev

従来のRAMDiskがGPURAMDiskよりも高速なのはなぜですか?

分類Dev

ここでJavaがCよりも高速に実行されるのはなぜですか?

分類Dev

GPUがCPUよりも高速に行列乗算を実行できるのはなぜですか?

Related 関連記事

  1. 1

    配列がArrayListよりもはるかに高速なのはなぜですか?

  2. 2

    C#での計算がPythonよりもはるかに高速なのはなぜですか

  3. 3

    この場合、「sed」が「awk」よりもはるかに高速でないのはなぜですか

  4. 4

    ifstream :: readがイテレータを使用するよりもはるかに高速なのはなぜですか?

  5. 5

    PythonのこのコードがC ++よりもはるかに高速なのはなぜですか?

  6. 6

    同じ目的で使用した場合、.html()が.text()よりもはるかに高速なのはなぜですか?

  7. 7

    ターミナルでMacVimがVimよりもはるかに高速なのはなぜですか?

  8. 8

    Eigensのmean()メソッドがsum()よりもはるかに高速なのはなぜですか?

  9. 9

    文字列:indexOfがcontainsよりも大幅に高速なのはなぜですか?

  10. 10

    str.strip()がstr.strip( '')よりもはるかに高速なのはなぜですか?

  11. 11

    numpy.ndarray.Tがnumpy.transpose(numpy.ndarray)よりもはるかに高速なのはなぜですか?

  12. 12

    rand()がarc4random()よりもはるかに高速なのはなぜですか?

  13. 13

    pandas.grouby.meanが並列実装よりもはるかに高速なのはなぜですか

  14. 14

    サブクエリ結合が直接結合よりもはるかに高速なのはなぜですか

  15. 15

    memcmpがforループチェックよりもはるかに高速なのはなぜですか?

  16. 16

    fio seq_writesがddよりもはるかに高速なのはなぜですか?

  17. 17

    SSHがHTTPよりもはるかに高速であると感じるのはなぜですか?

  18. 18

    test1()がtest2()よりもはるかに高速に実行されるのはなぜですか?

  19. 19

    SSRがSPAよりも高速であるのはなぜですか?

  20. 20

    代わりに、CPUがGPUよりも高速に行列演算を実行するのはなぜですか?

  21. 21

    iperf TCPはUDPよりもはるかに高速です。なぜですか?

  22. 22

    COPYはどのように機能し、なぜINSERTよりもはるかに高速なのですか?

  23. 23

    「dd」をgzip経由で直接コピーするよりもはるかに高速なのはなぜですか?

  24. 24

    この操作がGPUよりもCPUで高速に実行されるのはなぜですか?

  25. 25

    このコードでCPUがGPUよりも高速に実行されるのはなぜですか?

  26. 26

    この場合、PythonがC ++よりも高速なのはなぜですか?

  27. 27

    従来のRAMDiskがGPURAMDiskよりも高速なのはなぜですか?

  28. 28

    ここでJavaがCよりも高速に実行されるのはなぜですか?

  29. 29

    GPUがCPUよりも高速に行列乗算を実行できるのはなぜですか?

ホットタグ

アーカイブ