LRU cache

Rob Cliffe rob.cliffe at btinternet.com
Sat Feb 18 11:28:28 EST 2023



On 18/02/2023 15:29, Thomas Passin wrote:
> On 2/18/2023 5:38 AM, Albert-Jan Roskam wrote:
>>     I sometimes use this trick, which I learnt from a book by Martelli.
>>     Instead of try/except, membership testing with "in" 
>> (__contains__) might
>>     be faster. Probably "depends". Matter of measuring.
>>     def somefunc(arg, _cache={}):
>>         if len(_cache) > 10 ** 5:
>>             _cache.pop()
>>         try:
>>             return _cache[arg]
>>         except KeyError:
>>             result = expensivefunc(arg)
>>             _cache[arg] = result
>>             return result
>>     Albert-Jan
>
> _cache.get(arg) should be a little faster and use slightly fewer 
> resources than the try/except.
>
Provided that you can provide a default value to get() which will never 
be a genuine "result".



More information about the Python-list mailing list