按字典顺序对字符串进行分组(python)

时间:2012-02-12 05:39:12

标签: python string bucket data-partitioning

我有N个字符串,我想将词典分成M个大小的桶(+/- 1个字符串)。此外,N>> M。

直接的方法是对所有字符串进行排序,并将结果列表拆分为M个桶。

我希望在完整列表可用之前,通过将每个字符串创建到存储桶时对其进行近似处理。

是否有快速和pythonic方式将字符串分配给存储桶?我基本上是在寻找整数模运算符的字符串等价物。也许哈希保留了词典顺序?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

您可以按字符串的前两个字符排序,或者此类事物。

我们假设M=100,所以您应该将字符划分为sqrt(M)个区域,每个区域应指向另一个sqrt(M)区域,然后对于您获得的每个字符串,您可以比较第一个char来决定将字符串引导到哪个区域,再次引用第二个char,就像一个带有桶作为叶子的树和比较作为节点的树。

答案 1 :(得分:0)

根据定义,哈希不会保留任何顺序。

我认为没有任何pythonic方法可以做到这一点。

您可以创建字典(基本上是散列函数)并继续为每个循环法添加字符串,但它不会保留任何顺序。

相关问题