2016-09-19 4 views
0

私はPythonを学んでいます。私は理解とマップ関数を使うことのパフォーマンスの違いを見ています。map関数をPythonでtimeitで使用する

はこれを試した後、私ははtimeitを使用して正しく動作するリスト内包方法を取得するために管理している
import timeit 

print timeit.timeit('[x for x in range(100)]',number = 10000) 

def mapFunc(i): 
    print i 

print timeit.timeit('map(mapFunc,range(100))',number = 10000) 

、しかし、私はマップ機能にこれを比較したいと思います:

はこれまでのところ、私はこのコードを持っています。これを行うと、mapFuncが定義されていないというエラーが表示され、この問題を解決する方法がわかりません。誰かが助けてくれますか?

答えて

2

あなたsetup引数を経由してセットアップ関数の定義する必要があります

>>> setup='def mapFunc(): print(i)' 
>>> timeit.timeit('map(mapFunc,range(100))', number=10000, setup=setup) 

timeit doc reference

P.S.を参照してください。おそらくmapを印刷に使用することをお勧めします。

+0

第3引数setup = setupはどういう意味ですか? –

+0

'print'ステートメントで' map 'にかなり不公平です。 –

+0

これを正しく設定するにはどうすればこの機能を改善できますか?だから私はプリントを使用すべきではないなら、私は代わりに何をするだろうか? –

関連する問題