获取所有子串频率忽略sp

2024-09-30 02:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些字符串集,我想提取所有的子字符串和它的频率有超过1个字符

example_string = "coco crunch is nice nicenice"

这将返回:

string count 

co -> 2

nice -> 3

nicenice -> 1

crunch -> 1

is -> 1

这是一种野蛮的强迫子串

欢迎推荐。谢谢


Tags: 字符串stringisexamplecount频率nicecoco
1条回答
网友
1楼 · 发布于 2024-09-30 02:29:00

尝试使用以下词典:

print({(k[:len(k)//2] if k.count(k[:len(k)//2]) > 1 and len(k[:len(k)//2]) > 1 else k): (example_string.count(k[:len(k)//2]) if k.count(k[:len(k)//2]) > 1 and len(k[:len(k)//2]) > 1 else example_string.count(k)) for k in example_string.split()})

输出:

{'co': 2, 'crunch': 1, 'is': 1, 'nice': 3}

如果要同时包含原始子字符串:

from collections import Counter
print({**Counter(example_string.split()), **{(k[:len(k)//2] if k.count(k[:len(k)//2]) > 1 and len(k[:len(k)//2]) > 1 else k): (example_string.count(k[:len(k)//2]) if k.count(k[:len(k)//2]) > 1 and len(k[:len(k)//2]) > 1 else example_string.count(k)) for k in example_string.split()}})

输出:

{'coco': 1, 'crunch': 1, 'is': 1, 'nice': 3, 'nicenice': 1, 'co': 2}

相关问题 更多 >

    热门问题