Modern Dictionaries by Raymond Hettinger - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: General (https://python-forum.io/forum-1.html) +--- Forum: News and Discussions (https://python-forum.io/forum-31.html) +--- Thread: Modern Dictionaries by Raymond Hettinger (/thread-1238.html) |
Modern Dictionaries by Raymond Hettinger - snippsat - Dec-16-2016 Modern Dictionaries a good talk about the history of Dictionaries/Hash tables. Python 3.6 is a really big update in the python 3 history. Python 3.6 final should be released today,but a bug dict implementation set it back a week RE: Modern Dictionaries by Raymond Hettinger - sparkz_alot - Dec-16-2016 Sorry to hear that, I was looking forward to the new release RE: Modern Dictionaries by Raymond Hettinger - Larz60+ - Dec-16-2016 Watched the video and found it quite interesting and enjoyable. in 1992, the hash table that I created to process daily calls (normally about 80 million) was kept separate from data (which was in a flat file), This is the same in RH's algorithm. One thing that I did differently, which showed significant improvement at the time (by reduction of collisions) was to make the (hash) table always be a length that was a prime number. In addition, that size would be based on the size of the data (which changed daily, but in my case was always known before indexing). The method of using the cell number (in the hash table) matching the data is a major change, and a brilliant one. The algorithm that I wrote allowed for collisions but never had very large chains. Instead of increasing the size of the table entries vertically, it was done laterally as linked lists. This totally avoided ever having to reallocate memory and move cell contents. It also removed the necessity of looking for a place to put the new hash code when a collision was encountered. Simply put it at the end of a lateral chain. It was extremely fast for it's day, and I dare say that our processing time was significantly better than our nearest competitor (at the time) MCI. The company I am talking about is still around (Now called CenturyLink) was LCI. I still use this method when writing 'C' code when large data is involved. We old men did a few things right! |