2つの間に速度の違いはあまりありません。2つのシーケンスを反復処理しており、それらの構造の正確なデータ型のみが異なります。
次の方法dictionary
を使用すると、ループの効率が少し向上する可能性があります.iteritems()
。
dictionary = {'North': 'N', 'South': 'S', 'East': 'E', 'West': 'W'}
address = 'North South East West'
for key, value in dictionary.iteritems():
address = address.replace(key, value)
.iteritems()
ペアの反復可能を提供するため、この(key, value)
方法はタプルを使用する場合とまったく同じです。
timeit
モジュールを使用すると、2つの方法の間に実際の違いがないことがわかります。
>>> import timeit
>>> def dictionary(address, d={'North': 'N', 'South': 'S', 'East': 'E', 'West': 'W'}):
... for s, repl in d.iteritems():
... address = address.replace(s, repl)
...
>>> def tuples(address, t=[('North', 'N'), ('South', 'S'), ('East', 'E'), ('West', 'W')]):
... for s, repl in t:
... address = address.replace(s, repl)
...
>>> timeit.timeit("test('North South East West')", 'from __main__ import dictionary as test')
2.5873939990997314
>>> timeit.timeit("test('North South East West')", 'from __main__ import tuples as test')
2.5879111289978027