我将如何去寻找文件中最常见的子字符串

How would I go about finding the most common substring in a file

作为序言,我正在尝试创建自己的压缩方法,其中我不关心速度,因此对大文件进行大量迭代是合理的。但是,我想知道是否有任何方法可以获得长度为 2 或更多(最有可能为 3)的最常见子串,因为任何更大的子串都不合理。我想知道您是否可以在不拆分的情况下执行此操作,或者类似的操作,没有表格,只需搜索字符串。谢谢。

您可能想使用类似 collections.Counter 的方法将每个子字符串与一个计数相关联,例如:

>>> data = "the quick brown fox jumps over the lazy dog"
>>> c = collections.Counter(data[i:i+2] for i in range(len(data)-2))
>>> max(c, key=c.get)
'th'
>>> c = collections.Counter(data[i:i+3] for i in range(len(data)-3))
>>> max(c, key=c.get)
'the'