開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
Learning Python (Mark Lutz (著)、Oreilly & Associates Inc)のPART III.(Functions and Generators)、Test Your Knowledge: Part IV Exercises 、10.(Timing tools)を解いてみる。
その他参考書籍
10.(Timing tools)
コード(BBEdit)
sample.py
#!/usr/bin/env python3 #-*- coding: utf-8 -*- import math import sys import timerseqs l = list(range(10000)) def sqrtSqrt(): for n in l: res = math.sqrt(n) return res def sqrtOperator(): for n in l: res = n ** 0.5 return res def sqrtPow(): for n in l: res = pow(n, 0.5) return res print(sys.version) for test in (sqrtSqrt, sqrtOperator, sqrtPow): print('{0:12s}: {1:.5f} => {2}'.format( test.__name__, *timerseqs.bestoftotal(test))) def dictComprehensions(): return {x:x for x in l} def dictForLoop(): res = {} for x in l: res[x] = x return res for test in (dictComprehensions, dictForLoop): print('{0:20}: {1:.5f}'.format( test.__name__, timerseqs.bestoftotal(test)[0]))
入出力結果(Terminal)
$ ./sample.py 3.3.5 (default, Mar 15 2014, 14:51:54) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] sqrtSqrt : 3.30558 => 99.99499987499375 sqrtOperator: 3.45227 => 99.99499987499375 sqrtPow : 5.06863 => 99.99499987499375 dictComprehensions : 1.43393 dictForLoop : 1.88521 $
0 コメント:
コメントを投稿