📅  最后修改于: 2023-12-03 15:34:21.179000             🧑  作者: Mango
在 Python 中,我们可以使用以下方法来获取给定字符串的所有子字符串:
def get_all_substrings(s):
substrings = []
for i in range(len(s)):
for j in range(i+1, len(s)+1):
substrings.append(s[i:j])
return substrings
说明: 这个方法通过两层循环,遍历了字符串中的每一个字符和每一个子字符串,并将它们添加到一个列表中,最后返回这个列表。
下面是一个简单的例子:
s = "abcd"
print(get_all_substrings(s)) # ['a', 'ab', 'abc', 'abcd', 'b', 'bc', 'bcd', 'c', 'cd', 'd']
def get_all_substrings(s):
return [s[i: j] for i in range(len(s)) for j in range(i + 1, len(s) + 1)]
说明: 这个方法使用了列表推导式,能够简洁地实现与方法1一样的功能。
下面是一个简单的例子:
s = "abcd"
print(get_all_substrings(s)) # ['a', 'ab', 'abc', 'abcd', 'b', 'bc', 'bcd', 'c', 'cd', 'd']
from itertools import combinations
def get_all_substrings(s):
return [s[i:j] for i, j in combinations(range(len(s)+1), r=2)]
说明: 这个方法使用了 itertools 模块中的 combinations 方法,能够更加简洁地实现与方法1和方法2相同的功能。
下面是一个简单的例子:
s = "abcd"
print(get_all_substrings(s)) # ['a', 'ab', 'abc', 'abcd', 'b', 'bc', 'bcd', 'c', 'cd', 'd']
这是获取给定字符串的所有子字符串的三种不同方法。其中,第三种方法是最简洁的,并且使用了标准库中的内置方法,因此推荐使用。