есть ли разница в экономии места в памяти между trie и обычным словарем? если да, то есть ли способ подсчитать и измерить их разницу? например, сколько битов или байтов составляет их разница.
вот пример этих двух типов словарей:
trie_dict = {'f': {'o': {'o': {'t': {'value':'to walk with'},
'l': {'value':'to teach'},
'd':{'value': 'to eat'}}}}}
normal_dict = {'foot': {'value': 'to walk with'},
'fool': {'value': 'to teach'},
'food': {'value': 'to eat'}}
Решение проблемы
Это моя попытка лучше оценить общий размер объекта ( dictи strтолько):
def rec_size_of(obj):
current = 0
if isinstance(obj, dict):
current += getsizeof(obj)
for k,v in obj.items():
current += getsizeof(k)
current += rec_size_of(v)
elif isinstance(obj, str):
current += getsizeof(obj)
return current
rec_size_of(trie_dict)
2315
rec_size_of(normal_dict)
1454
Комментариев нет:
Отправить комментарий