📌  相关文章
📜  Python – 列表中出现的最大子字符串

📅  最后修改于: 2022-05-13 01:54:58.773000             🧑  作者: Mango

Python – 列表中出现的最大子字符串

有时,在使用Python字符串时,我们可能会遇到需要检查字符串列表中出现的最大子字符串的问题。这可以在生物学和其他应用中的 DNA 测序中得到应用。让我们讨论可以执行此任务的特定方式。
方法:使用 regex() + groupby() + max() + lambda
上述功能的组合可用于解决此特定问题。在此,我们首先使用正则表达式函数提取序列。然后使用 groupby() 执行计数器分组。最后一步是提取最大值,这是使用 max() 和 lambda 函数完成的。

Python3
# Python3 code to demonstrate working of
# Maximum occurring Substring from list
# Using regex() + groupby() + max() + lambda
import re
import itertools
 
# initializing string
test_str = "gfghsisbjknlmkesbestgfgsdcngfgcsdjnisdjnlbestdjsklgfgcdsbestbnjdsgfgdbhisbhsbestdkgfgb"
test_list = ['gfg', 'is', 'best']
 
# printing original string and list
print("The original string is : " + test_str)
print("The original list is : " + str(test_list))
 
# Maximum occurring Substring from list
# Using regex() + groupby() + max() + lambda
seqs = re.findall(str.join('|', test_list), test_str)
grps = [(key, len(list(j))) for key, j in itertools.groupby(seqs)]
res = max(grps, key = lambda ele : ele[1])
         
# printing result
print("Maximum frequency substring : " + str(res[0]))


输出 :
The original string is : gfghsisbjknlmkesbestgfgsdcngfgcsdjnisdjnlbestdjsklgfgcdsbestbnjdsgfgdbhisbhsbestdkgfgb
The original list is : ['gfg', 'is', 'best']
Maximum frequency substring : gfg