我有很长的字符串列表。我必须找出列表中是否重复了 n 个连续字符串的序列。
在寻找此类序列时,我一直在寻找其他答案。但是,它们大多数集中在检测连续重复的单个已知序列上。在这种情况下,它们可以是不同的序列,并且之间有随机字符串重复。
例如:
long_list = ['execve','brk','getpid','time','read','write','exit','read','call','execve','brk','getpid','read','write','exit']
如果n = 3,则算法应输出如下内容:
{['execve','brk','getpid']:2,['read','write','exit']:2}
如果以前已经回答过这样的问题,我已经看了很多,但是我找不到任何相关的内容。非常感谢您的帮助。
答案 0 :(得分:1)
像这样? 现在检查发生的情况是否比1更普遍。
from collections import Counter
long_list = ['execve','brk','getpid','time','read','write','exit','read','call','execve','brk','getpid','read','write','exit']
def find_length_n(n):
matches = []
for idx, word in enumerate(long_list):
tmp_string = long_list[idx:idx+n]
matches.append(str(tmp_string))
for key, val in Counter(matches).items():
if val >= 2:
print(key, val)
find_length_n(3)
将输出:
['execve', 'brk', 'getpid'] 2
['read', 'write', 'exit'] 2
答案 1 :(得分:0)
也许您正在寻找类似的东西吗?
long_list.count('execve')
2