Re[2]: [Python] dict find
От: IROV..  
Дата: 17.01.15 20:46
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Здравствуйте, IROV.., Вы писали:


IRO>>Да поиск по хеш таблице идет довольно быстро, но все же почему не хранить "последний" проверяемый индекс в таблице и сначала проверить на него, я думаю это должно сэкономить время

W>В комментариях к реализации (см. dictnotes) CPython2 есть такой абзац. В CPython3 уже нет. Ну и в коде вообще нет. Возможно проверили и оптимизация не зажгла. Возможно и не проверяли.

IRO>>(проверять только на is то есть указатели)

IRO>>что я упустил?
W>Знаешь про ABA?
W>Проверять указатели можно, но их равенство не говорит об том, что это тот же объект, что и был до этого. Пример:[python]
Ты прав, но только в том случае если я хранил бы PyObject * как кеш, в данном случае я буду сравнивать два корректных указателя которые живут в данной системе. И таких проблем не должно быть, ибо они указывают на живые объекты(объект).

W>А так, кажется, что всех уже приучили в таких ситуациях использовать .get(key, None), или .setdefault, или defaultdict, что в общем-то работает не особо плохо. Хотя,согласен, что это всё же не идеально, так как переносит проблему с интерпретатора на программиста.

Вот и говорю, что решать на уровне интерпретатора, особенно скриптового языка основной задачей которого упростить написание кода (без задней мысли про оптимизацию)
я не волшебник, я только учусь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.