【发布时间】:2015-10-09 13:07:13
【问题描述】:
我有数十亿个格式为 word0.word1.word2 的字符串,我希望对这些字符串进行取模,以便将每个字符串提供给数据库编写器进行存储。我知道我可以对字符串的第一个字符执行模 10 的形式,如下所示:
for i in ["a.b","c.d"]:
print ord(i[0]) % 10
不过,这不会平均划分我的字符串,因为 word0、word1 和 word2 是按字母顺序排序的,而且字符串的第一个字符通常是“a”。我可以取字符串的最后一个字母,但不确定它们是否正常分布。
我的问题:有没有一种快速的方法可以对整个字符串执行类似“ord”的操作?我最终计划在字符串的整数表示上运行模 48,并希望该模输出均匀分布在所有 48 个内核上。如果其他人可以提供任何帮助,我将不胜感激。
【问题讨论】:
-
所以基本上你正在寻找一个好的hash function 我认为你最好的选择是采用现有的实现
-
something_like_ord(whole_string)应该返回什么? -
@boardrider md5 是一种加密散列函数,不是您想在类似散列图的结构中使用的函数。
标签: python string hash modulo ord