Speed of search: list vs dict

Хозяйке на заметку.
Решил посчитать, как быстро 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'а нет ничто

Комментариев нет:

Tags