データを追加して確認するときのリストと辞書型の速度比較
前回,データを検索する場合,リストをsetした場合と辞書型ではsetのほうが早かったけど,データの追加までを考えるとどうなのか気になったので調べた.
プログラム
#-*- coding:utf-8 -*- import time def test_a(list): for i in range(10000): list.append(str(i)) if '1000' in set(list): print 'ok' def test_b(hash): for i in range(10000): hash[str(i)] = 1 if hash.has_key('1000'): print 'ok' if __name__=='__main__': a = [] b = {} f = time.clock() test_a(a) t = time.clock() print t-f f = time.clock() test_b(b) t = time.clock() print t-f
結果
- 1回目
set 0.0241987105459
辞書型 0.0217475306727
- 2回目
set 0.0243446228387
辞書型 0.0204658488246
- 3回目
set 0.0243446228387
辞書型 0.0208331958532
- 4回目
set 0.0242016434563
辞書型 0.0207848028314
- 5回目
set 0.0236297259269
辞書型 0.0210824932378
感想
リストの追加はとても重い処理なので,予想通りかな。