On 3/4/2023 10:43 PM, Dino wrote:

I need fast text-search on a large (not huge, let's say 30k records totally) list of items. Here's a sample of my raw data (a list of US cars: model and make)

I suspect I am really close to answering my own question...

>>> import time
>>> lis = [str(a**2+a*3+a) for a in range(0,30000)]
>>> s = time.process_time_ns(); res = [el for el in lis if "13467" in el]; print(time.process_time_ns() -s);
753800
>>> s = time.process_time_ns(); res = [el for el in lis if "52356" in el]; print(time.process_time_ns() -s);
1068300
>>> s = time.process_time_ns(); res = [el for el in lis if "5256" in el]; print(time.process_time_ns() -s);
862000
>>> s = time.process_time_ns(); res = [el for el in lis if "6" in el]; print(time.process_time_ns() -s);
1447300
>>> s = time.process_time_ns(); res = [el for el in lis if "1" in el]; print(time.process_time_ns() -s);
1511100
>>> s = time.process_time_ns(); res = [el for el in lis if "13467" in el]; print(time.process_time_ns() -s); print(len(res), res[:10])
926900
2 ['134676021', '313467021']
>>>

I can do a substring search in a list of 30k elements in less than 2ms with Python. Is my reasoning sound?

Dino


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to