阅读Python中所有可能的连续子串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了阅读Python中所有可能的连续子串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含970字,纯文字阅读大概需要2分钟。
内容图文
![阅读Python中所有可能的连续子串](/upload/InfoBanner/zyjiaocheng/818/30cf03db81dd4645bc5c0a0792f3c24c.jpg)
如果我有一个字母列表,例如:
word = [‘W’,’我’,’N’,’E’]
并且需要获得长度为3或更小的每个可能的子串序列,例如:
W I N E,WI N E,WI NE,W IN E,WIN E等
什么是最有效的方法?
现在,我有:
word = ['W','I','N','E']
for idx,phon in enumerate(word):
phon_seq = ""
for p_len in range(3):
if idx-p_len >= 0:
phon_seq = " ".join(word[idx-(p_len):idx+1])
print(phon_seq)
这只是给我下面的,而不是子序列:
W
I
W I
N
I N
W I N
E
N E
I N E
我只是无法弄清楚如何创建每个可能的序列.
解决方法:
试试这个递归算法:
def segment(word):
def sub(w):
if len(w) == 0:
yield []
for i in xrange(1, min(4, len(w) + 1)):
for s in sub(w[i:]):
yield [''.join(w[:i])] + s
return list(sub(word))
# And if you want a list of strings:
def str_segment(word):
return [' '.join(w) for w in segment(word)]
输出:
>>> segment(word)
[['W', 'I', 'N', 'E'], ['W', 'I', 'NE'], ['W', 'IN', 'E'], ['W', 'INE'], ['WI', 'N', 'E'], ['WI', 'NE'], ['WIN', 'E']]
>>> str_segment(word)
['W I N E', 'W I NE', 'W IN E', 'W INE', 'WI N E', 'WI NE', 'WIN E']
内容总结
以上是互联网集市为您收集整理的阅读Python中所有可能的连续子串全部内容,希望文章能够帮你解决阅读Python中所有可能的连续子串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】