在Python中处理一个模式识别函数,该函数假设返回一个带有计数器的模式数组
让我们想象一个字符串列表:
m = ['ABA','ABB', 'ABC','BCA','BCB','BCC','ABBC', 'ABBA', 'ABBC']
在高层,我想得到的是:
Pattern | Count
----------------
AB | 6
ABB | 4
BC | 3
----------------
问题:据我所知,模式以2个字符开头,并且是每个字符串值的前导字符(即XXZZZ、XXXZZZ(其中XX是我正在寻找的模式))。我想能够参数化一个模式的最小长度作为一个函数的输入,以优化运行时。你知道吗
另外,列表中的每一项都已经是一个单词了。你知道吗
我的问题是,我需要从阈值开始对每个字母进行迭代,我被困在那里了。 我更喜欢使用startswith('AB')
使用collections.Counter
您可以使用函数
accumulate()
来生成累积字符串,使用函数islice()
来获得最小长度的字符串:首先,让我们定义字符串:
现在,让我们计算长度为2或3的所有前导字符串:
为了与您的表进行比较,以下是三个最常见的前导字符串:
更新
要包括长度不超过
len(max(m, key=len))-1
的所有键:附加试验
为了证明我们可以正确处理较长的字符串,让我们考虑不同的输入:
相关问题 更多 >
编程相关推荐