表記を共有します
結論
わずかながらmapの方が速いようです
generator式が1番速い結果となりました(4/13追記)
これぐらいの速度差だと、どちらでも良いかも知れませんが
すみません、回数は-1回してください、range(回数)で測定していました
今回測定した処理は下の通りです
make_outputではプロパティの文字列を出力用に編集してreturnするだけのシンプルなものです
変数名やメソッド名は変更しています
なお、皆様の実行する内容や実行回数により、同じ結果になるかは分かりませんので、ご承知おきください
dummy.py
output = "\n".join(map(lambda value_object: value_object.make_output(), value_objects))
output = "\n".join([value_object.make_output() for value_object in value_objects])
測定結果
回数 | list内包表記 | map | generator |
---|---|---|---|
10 | 9.499999999995623e-06 | 9.042000000000772e-06 | 7.5419999999992715e-06 |
20 | 1.533299999999932e-05 | 1.5167000000003428e-05 | 1.3499999999999623e-05 |
30 | 2.129099999999967e-05 | 2.116699999999555e-05 | 2.012500000000278e-05 |
40 | 3.158400000000117e-05 | 2.7208000000000787e-05 | 2.5790999999997233e-05 |
50 | 3.775000000000306e-05 | 3.34580000000001e-05 | 3.16250000000004e-05 |
100 | 6.808299999999656e-05 | 6.445800000000335e-05 | 6.254100000000623e-05 |
200 | 0.00012937500000000102 | 0.00011662500000000214 | 0.00011325000000000224 |
500 | 0.00034287499999999943 | 0.0003077920000000012 | 0.0003053329999999979 |
1000 | 0.0006297919999999971 | 0.000612208000000003 | 0.0006056670000000042 |
どなたかのお役に立てると嬉しく思います