我有N个字符串,我想将词典分成M个大小的桶(+/- 1个字符串)。此外,N>> M。
直接的方法是对所有字符串进行排序,并将结果列表拆分为M个桶。
我希望在完整列表可用之前,通过将每个字符串创建到存储桶时对其进行近似处理。
是否有快速和pythonic方式将字符串分配给存储桶?我基本上是在寻找整数模运算符的字符串等价物。也许哈希保留了词典顺序?这甚至可能吗?
答案 0 :(得分:0)
您可以按字符串的前两个字符排序,或者此类事物。
我们假设M=100
,所以您应该将字符划分为sqrt(M)
个区域,每个区域应指向另一个sqrt(M)
区域,然后对于您获得的每个字符串,您可以比较第一个char来决定将字符串引导到哪个区域,再次引用第二个char,就像一个带有桶作为叶子的树和比较作为节点的树。
答案 1 :(得分:0)
根据定义,哈希不会保留任何顺序。
我认为没有任何pythonic方法可以做到这一点。
您可以创建字典(基本上是散列函数)并继续为每个循环法添加字符串,但它不会保留任何顺序。