Решил посчитать, как быстро python ищет значения - в dict и list:
#!/bin/env python
# -*- coding: utf-8 -*-
'''
Teaching speed of searchin items
'''
import time, random
MAX = 10000
l = random.sample(xrange(MAX), MAX)
m = range(MAX)
d = {}
d.fromkeys(l, True)
x = random.sample(xrange(MAX), MAX)
def test(dst, name):
t = time.time()
for i in x:
i in dst
print "%s: %f" % (name, time.time()-t)
test(l, "list")
test(m, "sort")
test(d, "dict")
Получилось:
для MAX=10000:
list: 2.395802
sort: 2.033103
dict: 0.001346
для MAX=20000:
list: 9.638626
sort: 8.131244
dict: 0.003095
Выводы:
1. сортируй, не сортируй - ...
2. лучше dict'а нет ничто
Комментариев нет:
Отправить комментарий