📜  Python|获取给定字符串的所有子字符串(1)

📅  最后修改于: 2023-12-03 15:34:21.179000             🧑  作者: Mango

Python | 获取给定字符串的所有子字符串

在 Python 中,我们可以使用以下方法来获取给定字符串的所有子字符串:

方法1:使用循环和切片操作
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']
方法2:使用列表推导式和切片操作
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']
方法3:使用 itertools 模块中的 combinations 方法
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']

这是获取给定字符串的所有子字符串的三种不同方法。其中,第三种方法是最简洁的,并且使用了标准库中的内置方法,因此推荐使用。