优化 python 中的字典密钥生成/查找 3.



我的程序将包含大量对一些大型python字典的引用。字典使用相当长的字符串(通常为+100个字符(作为键。我需要经常检查这些词典中是否存在密钥。而且很多时候,当它通过脚本流时,它会针对相同的字符串

检查字典中是否存在键是 O(1(。但是,生成字符串的哈希值(字典会这样做(是 O(N(,其中 N 是字符串的长度。由于我需要经常对同一个字符串进行这些检查,我想知道是否有办法优化这个哈希重新生成?我的想法是(伪代码如下(:

(1) receive a long string as an input
(2) create a short version of the string, e.g. by using MD5 or CRC32
(3) use the short version as a key

这有意义吗?

如果是,您会建议哪种压缩/哈希?

老实说,我过度设计了这个问题。

我试图模仿RDBMS表的结构,所以正在寻找唯一的主键。这些是我正在考虑散列的长字符串。我一直在寻找一种有效的方法来进行哈希处理。

但是解决方案要简单得多-我找到了相当于自动增量PK的功能。在python中,你可以使用itertools.count((来做到这一点。因此,我没有使用原来的长字符串,而是开始使用itertools.count((。这不是一个理想的解决方案,但它解决了问题。

最新更新