python - 如何在 Python 中获取字符串的所有连续子字符串?

标签 python string python-2.7 substring

这是我的代码,但我想要一个更好的解决方案,你怎么看待这个问题?

def get_all_substrings(string):
  length = len(string)
  alist = []
  for i in xrange(length):
    for j in xrange(i,length):
      alist.append(string[i:j + 1]) 
  return alist

print get_all_substring('abcde')

最佳答案

我能想到的唯一改进是,像这样使用列表理解

def get_all_substrings(input_string):
  length = len(input_string)
  return [input_string[i:j+1] for i in xrange(length) for j in xrange(i,length)]

print get_all_substrings('abcde')

你和我的时间比较

def get_all_substrings(string):
  length = len(string)
  alist = []
  for i in xrange(length):
    for j in xrange(i,length):
      alist.append(string[i:j + 1]) 
  return alist

def get_all_substrings_1(input_string):
  length = len(input_string)
  return [input_string[i:j + 1] for i in xrange(length) for j in xrange(i,length)]

from timeit import timeit
print timeit("get_all_substrings('abcde')", "from __main__ import get_all_substrings")
# 3.33308315277
print timeit("get_all_substrings_1('abcde')", "from __main__ import get_all_substrings_1")
# 2.67816185951

关于python - 如何在 Python 中获取字符串的所有连续子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22469997/

相关文章:

C++如何将字符串 block 写入文件?

python-2.7 - 扩展APScheduler

python - 如何在 web2py 中获取内部网应用程序的 Windows 用户 ID?

python - 简单的 flask /gevent 请求没有同时运行

javascript - 当我尝试重复字符串指定次数时,为什么 Javascript console.log 结果为 NaN

java - 检查是否有 3 个连续的辅音

python-2.7 - 在 Azure WebJobs 中使用 Python 包显示错误 - ImportError : DLL load failed

python - 为什么 api.depends 不能在非编辑模式下使用 message_follower_ids 字段?如何修复它?

python urllib2 无法获取特定的 url

Python Linux DNS 别名和地址回复